feat: check WDA server status before create session

This commit is contained in:
lilong.129
2024-12-10 21:50:34 +08:00
parent 1b547d3cfd
commit f83338b28f
3 changed files with 20 additions and 6 deletions

View File

@@ -1 +1 @@
v5.0.0+2412101121
v5.0.0+2412102150

View File

@@ -430,7 +430,6 @@ func (dev *IOSDevice) NewDriver(options ...DriverOption) (driverExt *DriverExt,
if err != nil {
return nil, errors.Wrap(err, "failed to init Stub driver")
}
} else {
driver, err = dev.NewHTTPDriver(capabilities)
if err != nil {
@@ -774,6 +773,20 @@ func (dev *IOSDevice) NewHTTPDriver(capabilities Capabilities) (driver IWebDrive
if wd.urlPrefix, err = url.Parse(fmt.Sprintf("http://%s:%d", host, localPort)); err != nil {
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
var sessionInfo SessionInfo
if sessionInfo, err = wd.NewSession(capabilities); err != nil {
return nil, errors.Wrap(code.DeviceHTTPDriverError, err.Error())

View File

@@ -6,6 +6,7 @@ import (
builtinJSON "encoding/json"
"fmt"
"io"
"math"
"net"
"net/http"
"net/url"
@@ -559,10 +560,10 @@ func (wd *wdaDriver) Drag(fromX, fromY, toX, toY float64, options ...ActionOptio
toY += actionOptions.getRandomOffset()
data := map[string]interface{}{
"fromX": fromX,
"fromY": fromY,
"toX": toX,
"toY": toY,
"fromX": math.Round(fromX*10) / 10,
"fromY": math.Round(fromY*10) / 10,
"toX": math.Round(toX*10) / 10,
"toY": math.Round(toY*10) / 10,
}
if actionOptions.PressDuration > 0 {
data["pressDuration"] = actionOptions.PressDuration