change: check WDA server status when request WDA failed

This commit is contained in:
lilong.129
2024-12-12 14:05:59 +08:00
parent 27da246527
commit a5ab516a92
3 changed files with 17 additions and 19 deletions
+1 -1
View File
@@ -1 +1 @@
v5.0.0+2412121206 v5.0.0+2412121405
+3 -15
View File
@@ -636,18 +636,18 @@ func (dev *IOSDevice) MountImage(imagePath string) (err error) {
func (dev *IOSDevice) AutoMountImage(basedir string) (err error) { func (dev *IOSDevice) AutoMountImage(basedir string) (err error) {
imagePath, err := imagemounter.DownloadImageFor(dev.d, basedir) imagePath, err := imagemounter.DownloadImageFor(dev.d, basedir)
if err != nil { if err != nil {
log.Error().Err(err).Msg("failed to auto mount image") log.Error().Err(err).Msg("failed to download ios developer image")
return return
} }
conn, err := imagemounter.NewImageMounter(dev.d) conn, err := imagemounter.NewImageMounter(dev.d)
if err != nil { if err != nil {
log.Error().Err(err).Msg("failed to auto mount image") log.Error().Err(err).Msg("failed to init image mounter")
return return
} }
defer conn.Close() defer conn.Close()
err = conn.MountImage(imagePath) err = conn.MountImage(imagePath)
if err != nil { if err != nil {
log.Error().Err(err).Msg("failed to auto mount image") log.Error().Err(err).Msg("failed to mount ios developer image")
return return
} }
return nil return nil
@@ -774,18 +774,6 @@ func (dev *IOSDevice) NewHTTPDriver(capabilities Capabilities) (driver IWebDrive
return nil, errors.Wrap(code.DeviceHTTPDriverError, err.Error()) return nil, errors.Wrap(code.DeviceHTTPDriverError, err.Error())
} }
// check WDA server status
status, err := wd.Status()
if err != nil {
return nil, errors.Wrapf(code.DeviceHTTPDriverError,
"get WDA server status failed: %s", err.Error())
}
log.Info().Interface("status", status).Msg("get WDA server status")
if status.State != "success" {
return nil, errors.Wrap(code.DeviceHTTPDriverError,
"WDA server status is not success")
}
// create new session // create new session
var sessionInfo SessionInfo var sessionInfo SessionInfo
if sessionInfo, err = wd.NewSession(capabilities); err != nil { if sessionInfo, err = wd.NewSession(capabilities); err != nil {
+13 -3
View File
@@ -55,12 +55,22 @@ func (wd *wdaDriver) httpRequest(method string, rawURL string, rawBody []byte) (
if err == nil { if err == nil {
return return
} }
// TODO: polling WDA to check if resumed automatically
// check WDA server status
status, err := wd.Status()
if err != nil {
log.Err(err).Msg("get WDA server status failed")
} else if status.State != "success" {
log.Warn().Interface("status", status).Msg("WDA server status is not success")
} else {
log.Info().Interface("status", status).Msg("get WDA server status")
}
retryInterval = retryInterval * 2 retryInterval = retryInterval * 2
time.Sleep(retryInterval) time.Sleep(retryInterval)
oldSessionID := wd.session.ID oldSessionID := wd.session.ID
if err2 := wd.resetSession(); err2 != nil { if err2 := wd.resetSession(); err2 != nil {
log.Err(err2).Msgf("failed to reset wda driver, retry count: %v", retryCount) log.Err(err2).Msgf("failed to reset wda driver session, retry count: %v", retryCount)
continue continue
} }
log.Debug().Str("new session", wd.session.ID).Str("old session", oldSessionID). log.Debug().Str("new session", wd.session.ID).Str("old session", oldSessionID).
@@ -104,7 +114,7 @@ func (wd *wdaDriver) NewSession(capabilities Capabilities) (sessionInfo SessionI
} }
var rawResp rawResponse var rawResp rawResponse
if rawResp, err = wd.Driver.httpPOST(data, "/session"); err != nil { if rawResp, err = wd.httpPOST(data, "/session"); err != nil {
return SessionInfo{}, err return SessionInfo{}, err
} }
if sessionInfo, err = rawResp.valueConvertToSessionInfo(); err != nil { if sessionInfo, err = rawResp.valueConvertToSessionInfo(); err != nil {