fix: 修复duration设置不准确的问题

This commit is contained in:
余泓铮
2024-06-12 11:37:29 +08:00
parent c670a4cef9
commit c5712b1a66
3 changed files with 20 additions and 15 deletions

View File

@@ -1 +1 @@
v4.5.1
v4.5.6

View File

@@ -216,17 +216,8 @@ func TestDriver_Tap(t *testing.T) {
}
func TestDriver_Swipe(t *testing.T) {
driver, err := NewUIADriver(nil, uiaServerURL)
if err != nil {
t.Fatal(err)
}
err = driver.Swipe(400, 1000, 400, 500, WithPressDuration(2000))
if err != nil {
t.Fatal(err)
}
err = driver.SwipeFloat(400, 555.5, 400, 1255.5)
setupAndroid(t)
err := driverExt.Driver.Swipe(400, 1000, 400, 500, WithPressDuration(0.5))
if err != nil {
t.Fatal(err)
}
@@ -307,6 +298,14 @@ func TestDriver_SetRotation(t *testing.T) {
}
}
func TestDriver_GetOrientation(t *testing.T) {
setupAndroid(t)
_, _ = driverExt.Driver.AppTerminate("com.quark.browser")
_ = driverExt.Driver.AppLaunch("com.quark.browser")
time.Sleep(2 * time.Second)
_ = driverExt.Driver.Homescreen()
}
func TestUiSelectorHelper_NewUiSelectorHelper(t *testing.T) {
uiSelector := NewUiSelectorHelper().Text("a").String()
if uiSelector != `new UiSelector().text("a");` {

View File

@@ -29,6 +29,7 @@ func NewUIADriver(capabilities Capabilities, urlPrefix string) (driver *uiaDrive
log.Info().Msg("init uiautomator2 driver")
if capabilities == nil {
capabilities = NewCapabilities()
capabilities.WithWaitForIdleTimeout(0)
}
driver = new(uiaDriver)
if driver.urlPrefix, err = url.Parse(urlPrefix); err != nil {
@@ -141,7 +142,12 @@ func (ud *uiaDriver) httpDELETE(pathElem ...string) (rawResp rawResponse, err er
func (ud *uiaDriver) NewSession(capabilities Capabilities) (sessionInfo SessionInfo, err error) {
// register(postHandler, new NewSession("/wd/hub/session"))
var rawResp rawResponse
data := map[string]interface{}{"capabilities": capabilities}
data := make(map[string]interface{})
if len(capabilities) == 0 {
data["capabilities"] = make(map[string]interface{})
} else {
data["capabilities"] = map[string]interface{}{"alwaysMatch": capabilities}
}
if rawResp, err = ud.Driver.httpPOST(data, "/session"); err != nil {
return SessionInfo{SessionId: ""}, err
}
@@ -293,7 +299,7 @@ func (ud *uiaDriver) TapFloat(x, y float64, options ...ActionOption) (err error)
duration := 100.0
if actionOptions.PressDuration > 0 {
duration = actionOptions.PressDuration
duration = actionOptions.PressDuration * 1000
}
data := map[string]interface{}{
"actions": []interface{}{
@@ -399,7 +405,7 @@ func (ud *uiaDriver) SwipeFloat(fromX, fromY, toX, toY float64, options ...Actio
duration := 200.0
if actionOptions.PressDuration > 0 {
duration = actionOptions.PressDuration
duration = actionOptions.PressDuration * 1000
}
data := map[string]interface{}{
"actions": []interface{}{