fix: check popup

This commit is contained in:
lilong.129
2024-09-12 19:51:47 +08:00
parent a87a4ea680
commit 77b64c1eef
4 changed files with 19 additions and 14 deletions

View File

@@ -94,13 +94,6 @@ func (p *PopupInfo) ClosePoint() *PointF {
} }
func (dExt *DriverExt) CheckPopup() (popup *PopupInfo, err error) { func (dExt *DriverExt) CheckPopup() (popup *PopupInfo, err error) {
defer func() {
if popup == nil {
log.Info().Msg("check popup, no found")
} else {
log.Info().Interface("popup", popup).Msg("found popup")
}
}()
screenResult, err := dExt.GetScreenResult( screenResult, err := dExt.GetScreenResult(
WithScreenShotUpload(true), WithScreenShotUpload(true),
WithScreenShotClosePopups(true), // get popup area and close area WithScreenShotClosePopups(true), // get popup area and close area
@@ -110,13 +103,16 @@ func (dExt *DriverExt) CheckPopup() (popup *PopupInfo, err error) {
} }
popup = screenResult.Popup popup = screenResult.Popup
if popup == nil { if popup == nil {
return nil, errors.New("popup not found") // popup not found
log.Debug().Msg("check popup, no found")
return nil, nil
} }
closePoint := popup.ClosePoint() closePoint := popup.ClosePoint()
if closePoint == nil { if closePoint == nil {
// close point not found // close point not found
return nil, errors.New("popup close point not found") return nil, errors.Wrap(code.MobileUIPopupError, "popup close point not found")
} }
log.Info().Interface("popup", popup).Msg("found popup")
return popup, nil return popup, nil
} }
@@ -125,9 +121,14 @@ func (dExt *DriverExt) ClosePopupsHandler() (err error) {
popup, err := dExt.CheckPopup() popup, err := dExt.CheckPopup()
if err != nil { if err != nil {
// check popup failed
return err
} else if popup == nil {
// no popup found // no popup found
return nil return nil
} }
// found popup
closePoint := popup.ClosePoint() closePoint := popup.ClosePoint()
log.Info(). log.Info().

View File

@@ -11,9 +11,11 @@ func TestCheckPopup(t *testing.T) {
setupAndroidAdbDriver(t) setupAndroidAdbDriver(t)
popup, err := driverExt.CheckPopup() popup, err := driverExt.CheckPopup()
if err != nil { if err != nil {
t.Logf("error: %v", err) t.Logf("check popup failed, err: %v", err)
} else if popup == nil {
t.Log("no popup found")
} else { } else {
t.Logf("popup: %+v", popup) t.Logf("found popup: %v", popup)
} }
} }

View File

@@ -49,6 +49,7 @@ func (dExt *DriverExt) GetScreenResult(options ...ActionOption) (screenResult *S
windowSize, err := dExt.Driver.WindowSize() windowSize, err := dExt.Driver.WindowSize()
if err != nil { if err != nil {
err = errors.Wrap(code.MobileUIDriverError, err.Error())
return return
} }
screenResult = &ScreenResult{ screenResult = &ScreenResult{

View File

@@ -19,13 +19,14 @@ func assertRelative(p float64) bool {
func (dExt *DriverExt) SwipeRelative(fromX, fromY, toX, toY float64, options ...ActionOption) error { func (dExt *DriverExt) SwipeRelative(fromX, fromY, toX, toY float64, options ...ActionOption) error {
if !assertRelative(fromX) || !assertRelative(fromY) || if !assertRelative(fromX) || !assertRelative(fromY) ||
!assertRelative(toX) || !assertRelative(toY) { !assertRelative(toX) || !assertRelative(toY) {
return fmt.Errorf("fromX(%f), fromY(%f), toX(%f), toY(%f) must be less than 1", return errors.Wrap(code.MobileUISwipeError,
fromX, fromY, toX, toY) fmt.Sprintf("fromX(%f), fromY(%f), toX(%f), toY(%f) must be less than 1",
fromX, fromY, toX, toY))
} }
windowSize, err := dExt.Driver.WindowSize() windowSize, err := dExt.Driver.WindowSize()
if err != nil { if err != nil {
return err return errors.Wrap(code.MobileUISwipeError, err.Error())
} }
width := windowSize.Width width := windowSize.Width
height := windowSize.Height height := windowSize.Height