mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-05 23:51:25 +08:00
fix: swipe right twice to exit live room
This commit is contained in:
@@ -180,7 +180,14 @@ func (vc *VideoCrawler) startLiveCrawler(enterPoint PointF) error {
|
|||||||
|
|
||||||
liveRoom, err := vc.getCurrentLiveRoom()
|
liveRoom, err := vc.getCurrentLiveRoom()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "get current live event trackings failed")
|
if vc.failedCount >= 3 {
|
||||||
|
// failed 3 consecutive times
|
||||||
|
return errors.New("get current live event trackings failed 3 consecutive times")
|
||||||
|
}
|
||||||
|
// retry
|
||||||
|
vc.failedCount++
|
||||||
|
log.Warn().Int64("failedCount", vc.failedCount).Msg("get current live room failed")
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// take screenshot and get screen texts by OCR
|
// take screenshot and get screen texts by OCR
|
||||||
@@ -224,6 +231,9 @@ func (vc *VideoCrawler) startLiveCrawler(enterPoint PointF) error {
|
|||||||
screenResult.SwipeStartTime = swipeStartTime.UnixMilli()
|
screenResult.SwipeStartTime = swipeStartTime.UnixMilli()
|
||||||
screenResult.SwipeFinishTime = swipeFinishTime.UnixMilli()
|
screenResult.SwipeFinishTime = swipeFinishTime.UnixMilli()
|
||||||
screenResult.TotalElapsed = time.Since(swipeFinishTime).Milliseconds()
|
screenResult.TotalElapsed = time.Since(swipeFinishTime).Milliseconds()
|
||||||
|
|
||||||
|
// reset failed count
|
||||||
|
vc.failedCount = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -233,23 +243,14 @@ func (vc *VideoCrawler) startLiveCrawler(enterPoint PointF) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (vc *VideoCrawler) exitLiveRoom() error {
|
func (vc *VideoCrawler) exitLiveRoom() error {
|
||||||
for i := 0; i < 3; i++ {
|
log.Info().Msg("exit live room")
|
||||||
|
// swipe right twice to exit live room
|
||||||
|
for i := 0; i < 2; i++ {
|
||||||
vc.driverExt.SwipeRelative(0.1, 0.5, 0.9, 0.5)
|
vc.driverExt.SwipeRelative(0.1, 0.5, 0.9, 0.5)
|
||||||
time.Sleep(2 * time.Second)
|
time.Sleep(2 * time.Second)
|
||||||
}
|
}
|
||||||
|
// TODO: check exit live room success
|
||||||
// exit live room failed, while video count achieved
|
return nil
|
||||||
if vc.isTargetAchieved() {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// click X button on upper-right corner
|
|
||||||
if err := vc.driverExt.TapXY(0.95, 0.05); err == nil {
|
|
||||||
log.Info().Msg("tap X button on upper-right corner to exit live room")
|
|
||||||
time.Sleep(2 * time.Second)
|
|
||||||
}
|
|
||||||
|
|
||||||
return errors.New("exit live room failed")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) {
|
func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) {
|
||||||
@@ -326,7 +327,9 @@ func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) {
|
|||||||
}
|
}
|
||||||
crawler.lastFeed = feedVideo
|
crawler.lastFeed = feedVideo
|
||||||
|
|
||||||
screenResult := &ScreenResult{}
|
screenResult := &ScreenResult{
|
||||||
|
Resolution: dExt.windowSize,
|
||||||
|
}
|
||||||
dExt.cacheStepData.screenResults[time.Now().String()] = screenResult
|
dExt.cacheStepData.screenResults[time.Now().String()] = screenResult
|
||||||
|
|
||||||
// check if live video && run live crawler
|
// check if live video && run live crawler
|
||||||
|
|||||||
Reference in New Issue
Block a user