mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-04 23:16:57 +08:00
refactor: check feed activity
This commit is contained in:
@@ -386,7 +386,8 @@ func (ad *adbDriver) AssertAppForeground(packageName string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if app.PackageName != packageName {
|
if app.PackageName != packageName {
|
||||||
return errors.New("app is not in foreground")
|
return fmt.Errorf("%v is not in foreground, current is %v",
|
||||||
|
packageName, app.PackageName)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -329,10 +329,22 @@ func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
// launch app
|
// launch app
|
||||||
if err = dExt.Driver.AppLaunch(configs.AppPackageName); err != nil {
|
if configs.AppPackageName != "" {
|
||||||
return err
|
if err = dExt.Driver.AppLaunch(configs.AppPackageName); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
time.Sleep(5 * time.Second)
|
||||||
|
} else {
|
||||||
|
app, err := dExt.Driver.GetForegroundApp()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
log.Info().
|
||||||
|
Str("packageName", app.PackageName).
|
||||||
|
Str("activity", app.Activity).
|
||||||
|
Msg("start to video crawler for current foreground app")
|
||||||
|
configs.AppPackageName = app.PackageName
|
||||||
}
|
}
|
||||||
time.Sleep(5 * time.Second)
|
|
||||||
|
|
||||||
liveCrawler := LiveCrawler{
|
liveCrawler := LiveCrawler{
|
||||||
driver: dExt,
|
driver: dExt,
|
||||||
@@ -352,11 +364,6 @@ func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) {
|
|||||||
log.Warn().Msg("interrupted in feed crawler")
|
log.Warn().Msg("interrupted in feed crawler")
|
||||||
return errors.Wrap(code.InterruptError, "feed crawler interrupted")
|
return errors.Wrap(code.InterruptError, "feed crawler interrupted")
|
||||||
default:
|
default:
|
||||||
// check if feed page
|
|
||||||
if err := dExt.assertActivity(configs.AppPackageName, "feed"); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// take screenshot and get screen texts by OCR
|
// take screenshot and get screen texts by OCR
|
||||||
imagePath, texts, err := dExt.GetScreenTextsByOCR()
|
imagePath, texts, err := dExt.GetScreenTextsByOCR()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -411,6 +418,11 @@ func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
|
|
||||||
|
// check if feed page
|
||||||
|
if err := dExt.assertActivity(configs.AppPackageName, "feed"); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -448,6 +460,8 @@ var popups = [][]string{
|
|||||||
{".*个人信息保护.*", "同意"},
|
{".*个人信息保护.*", "同意"},
|
||||||
{".*更新.*", "以后再说"},
|
{".*更新.*", "以后再说"},
|
||||||
{".*定位.*", ".*允许.*"},
|
{".*定位.*", ".*允许.*"},
|
||||||
|
{".*拍照.*", "仅.*允许"},
|
||||||
|
{".*录音.*", "仅.*允许"},
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dExt *DriverExt) autoPopupHandler(ocrResult *OcrResult) error {
|
func (dExt *DriverExt) autoPopupHandler(ocrResult *OcrResult) error {
|
||||||
@@ -461,6 +475,7 @@ func (dExt *DriverExt) autoPopupHandler(ocrResult *OcrResult) error {
|
|||||||
log.Warn().Interface("popup", popup).
|
log.Warn().Interface("popup", popup).
|
||||||
Interface("texts", ocrResult.Texts).Msg("text popup found")
|
Interface("texts", ocrResult.Texts).Msg("text popup found")
|
||||||
point := points[1].Center()
|
point := points[1].Center()
|
||||||
|
log.Info().Str("text", points[1].Text).Msg("close popup")
|
||||||
if err := dExt.TapAbsXY(point.X, point.Y); err != nil {
|
if err := dExt.TapAbsXY(point.X, point.Y); err != nil {
|
||||||
log.Error().Err(err).Msg("tap popup failed")
|
log.Error().Err(err).Msg("tap popup failed")
|
||||||
return errors.Wrap(code.MobileUIPopupError, err.Error())
|
return errors.Wrap(code.MobileUIPopupError, err.Error())
|
||||||
|
|||||||
@@ -594,7 +594,7 @@ func runStepMobileUI(s *SessionRunner, step *TStep) (stepResult *StepResult, err
|
|||||||
packageName := uiDriver.Driver.GetLastLaunchedApp()
|
packageName := uiDriver.Driver.GetLastLaunchedApp()
|
||||||
err2 := uiDriver.Driver.AssertAppForeground(packageName)
|
err2 := uiDriver.Driver.AssertAppForeground(packageName)
|
||||||
if packageName != "" && err2 != nil {
|
if packageName != "" && err2 != nil {
|
||||||
log.Error().Err(err2).Str("packageName", packageName).Msg("app is not in foreground")
|
log.Error().Err(err2).Msg("app is not in foreground")
|
||||||
err = errors.Wrap(code.MobileUIAppNotInForegroundError, err2.Error())
|
err = errors.Wrap(code.MobileUIAppNotInForegroundError, err2.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user