From 7a0ce219e3d7d88830c8093793354278a1e7a9b1 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Tue, 11 Oct 2022 18:16:48 +0800 Subject: [PATCH] change: add capabilities for driver --- hrp/pkg/uixt/android_device.go | 8 ++++---- hrp/pkg/uixt/demo/main_test.go | 5 ++++- hrp/pkg/uixt/drag_test.go | 4 +--- hrp/pkg/uixt/gesture_test.go | 4 +--- hrp/pkg/uixt/interface.go | 2 +- hrp/pkg/uixt/ios_device.go | 14 ++++++++------ hrp/pkg/uixt/ocr_test.go | 4 +--- hrp/pkg/uixt/swipe_test.go | 4 +--- hrp/pkg/uixt/tap_test.go | 22 ++++++++++------------ hrp/pkg/uixt/touch_test.go | 8 ++------ hrp/step_ios_ui.go | 2 +- 11 files changed, 34 insertions(+), 43 deletions(-) diff --git a/hrp/pkg/uixt/android_device.go b/hrp/pkg/uixt/android_device.go index c43eaa4f..9e0b4c1b 100644 --- a/hrp/pkg/uixt/android_device.go +++ b/hrp/pkg/uixt/android_device.go @@ -106,7 +106,7 @@ func (dev *AndroidDevice) UUID() string { return dev.SerialNumber } -func (dev *AndroidDevice) NewDriver() (driverExt *DriverExt, err error) { +func (dev *AndroidDevice) NewDriver(capabilities Capabilities) (driverExt *DriverExt, err error) { var deviceOptions []AndroidDeviceOption if dev.SerialNumber != "" { deviceOptions = append(deviceOptions, WithSerialNumber(dev.SerialNumber)) @@ -122,11 +122,11 @@ func (dev *AndroidDevice) NewDriver() (driverExt *DriverExt, err error) { if err != nil { return nil, err } - return androidDevice.InitUIAClient() + return androidDevice.initUIAClient(capabilities) } -func (dev *AndroidDevice) InitUIAClient() (*DriverExt, error) { - driver, err := dev.NewUSBDriver(nil) +func (dev *AndroidDevice) initUIAClient(capabilities Capabilities) (*DriverExt, error) { + driver, err := dev.NewUSBDriver(capabilities) if err != nil { return nil, errors.Wrap(err, "failed to init UIA driver") } diff --git a/hrp/pkg/uixt/demo/main_test.go b/hrp/pkg/uixt/demo/main_test.go index e6747e46..26bfb46b 100644 --- a/hrp/pkg/uixt/demo/main_test.go +++ b/hrp/pkg/uixt/demo/main_test.go @@ -12,7 +12,10 @@ func TestIOSDemo(t *testing.T) { if err != nil { t.Fatal(err) } - driverExt, err := device.InitWDAClient() + + capabilities := uixt.NewCapabilities() + capabilities.WithDefaultAlertAction(uixt.AlertActionAccept) // or uixt.AlertActionDismiss + driverExt, err := device.NewDriver(capabilities) if err != nil { t.Fatal(err) } diff --git a/hrp/pkg/uixt/drag_test.go b/hrp/pkg/uixt/drag_test.go index 653c716e..59a8fbfb 100644 --- a/hrp/pkg/uixt/drag_test.go +++ b/hrp/pkg/uixt/drag_test.go @@ -7,9 +7,7 @@ import ( ) func TestDriverExt_Drag(t *testing.T) { - device, err := NewIOSDevice() - checkErr(t, err) - driverExt, err := device.InitWDAClient() + driverExt, err := iosDevice.NewDriver(nil) checkErr(t, err) pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_map.png" diff --git a/hrp/pkg/uixt/gesture_test.go b/hrp/pkg/uixt/gesture_test.go index 0e880ecc..c3b8dcad 100644 --- a/hrp/pkg/uixt/gesture_test.go +++ b/hrp/pkg/uixt/gesture_test.go @@ -15,9 +15,7 @@ func TestDriverExt_GesturePassword(t *testing.T) { password[i], _ = strconv.Atoi(split[i]) } - device, err := NewIOSDevice() - checkErr(t, err) - driverExt, err := device.InitWDAClient() + driverExt, err := iosDevice.NewDriver(nil) checkErr(t, err) pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_5.png" diff --git a/hrp/pkg/uixt/interface.go b/hrp/pkg/uixt/interface.go index 8c6e3d99..93b07179 100644 --- a/hrp/pkg/uixt/interface.go +++ b/hrp/pkg/uixt/interface.go @@ -802,7 +802,7 @@ func WithFrequency(frequency int) DataOption { // current implemeted device: IOSDevice, AndroidDevice type Device interface { UUID() string - NewDriver() (driverExt *DriverExt, err error) + NewDriver(capabilities Capabilities) (driverExt *DriverExt, err error) } // WebDriver defines methods supported by WebDriver drivers. diff --git a/hrp/pkg/uixt/ios_device.go b/hrp/pkg/uixt/ios_device.go index cd358bae..d8004e0a 100644 --- a/hrp/pkg/uixt/ios_device.go +++ b/hrp/pkg/uixt/ios_device.go @@ -140,7 +140,7 @@ func (dev *IOSDevice) UUID() string { return dev.UDID } -func (dev *IOSDevice) NewDriver() (driverExt *DriverExt, err error) { +func (dev *IOSDevice) NewDriver(capabilities Capabilities) (driverExt *DriverExt, err error) { var deviceOptions []IOSDeviceOption if dev.UDID != "" { deviceOptions = append(deviceOptions, WithUDID(dev.UDID)) @@ -156,15 +156,17 @@ func (dev *IOSDevice) NewDriver() (driverExt *DriverExt, err error) { if err != nil { return nil, err } - return iosDevice.InitWDAClient() + return iosDevice.initWDAClient(capabilities) } -func (dev *IOSDevice) InitWDAClient() (driverExt *DriverExt, err error) { +func (dev *IOSDevice) initWDAClient(capabilities Capabilities) (driverExt *DriverExt, err error) { // init WDA driver - capabilities := NewCapabilities() - capabilities.WithDefaultAlertAction(AlertActionAccept) - var driver WebDriver + if capabilities == nil { + capabilities = NewCapabilities() + capabilities.WithDefaultAlertAction(AlertActionAccept) + } + var driver WebDriver if env.WDA_USB_DRIVER == "" { // default use http driver driver, err = dev.NewHTTPDriver(capabilities) diff --git a/hrp/pkg/uixt/ocr_test.go b/hrp/pkg/uixt/ocr_test.go index ce58950e..da868c27 100644 --- a/hrp/pkg/uixt/ocr_test.go +++ b/hrp/pkg/uixt/ocr_test.go @@ -7,9 +7,7 @@ import ( ) func TestDriverExtOCR(t *testing.T) { - device, err := NewIOSDevice() - checkErr(t, err) - driverExt, err := device.InitWDAClient() + driverExt, err := iosDevice.NewDriver(nil) checkErr(t, err) x, y, width, height, err := driverExt.FindTextByOCR("抖音") diff --git a/hrp/pkg/uixt/swipe_test.go b/hrp/pkg/uixt/swipe_test.go index d9e31947..83502a8f 100644 --- a/hrp/pkg/uixt/swipe_test.go +++ b/hrp/pkg/uixt/swipe_test.go @@ -7,9 +7,7 @@ import ( ) func TestSwipeUntil(t *testing.T) { - device, err := NewIOSDevice() - checkErr(t, err) - driverExt, err := device.InitWDAClient() + driverExt, err := iosDevice.NewDriver(nil) checkErr(t, err) var point PointF diff --git a/hrp/pkg/uixt/tap_test.go b/hrp/pkg/uixt/tap_test.go index d824785b..b1bf9ee9 100644 --- a/hrp/pkg/uixt/tap_test.go +++ b/hrp/pkg/uixt/tap_test.go @@ -6,10 +6,14 @@ import ( "testing" ) +var iosDevice *IOSDevice + +func init() { + iosDevice, _ = NewIOSDevice() +} + func TestDriverExt_TapWithNumber(t *testing.T) { - device, err := NewIOSDevice() - checkErr(t, err) - driverExt, err := device.InitWDAClient() + driverExt, err := iosDevice.NewDriver(nil) checkErr(t, err) pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/flag7.png" @@ -22,9 +26,7 @@ func TestDriverExt_TapWithNumber(t *testing.T) { } func TestDriverExt_TapXY(t *testing.T) { - device, err := NewIOSDevice() - checkErr(t, err) - driverExt, err := device.InitWDAClient() + driverExt, err := iosDevice.NewDriver(nil) checkErr(t, err) err = driverExt.TapXY(0.4, 0.5, "") @@ -32,9 +34,7 @@ func TestDriverExt_TapXY(t *testing.T) { } func TestDriverExt_TapAbsXY(t *testing.T) { - device, err := NewIOSDevice() - checkErr(t, err) - driverExt, err := device.InitWDAClient() + driverExt, err := iosDevice.NewDriver(nil) checkErr(t, err) err = driverExt.TapAbsXY(100, 300, "") @@ -42,9 +42,7 @@ func TestDriverExt_TapAbsXY(t *testing.T) { } func TestDriverExt_TapWithOCR(t *testing.T) { - device, err := NewIOSDevice() - checkErr(t, err) - driverExt, err := device.InitWDAClient() + driverExt, err := iosDevice.NewDriver(nil) checkErr(t, err) // 需要点击文字上方的图标 diff --git a/hrp/pkg/uixt/touch_test.go b/hrp/pkg/uixt/touch_test.go index 92d73d18..aa5515a8 100644 --- a/hrp/pkg/uixt/touch_test.go +++ b/hrp/pkg/uixt/touch_test.go @@ -7,9 +7,7 @@ import ( ) func TestDriverExt_ForceTouch(t *testing.T) { - device, err := NewIOSDevice() - checkErr(t, err) - driverExt, err := device.InitWDAClient() + driverExt, err := iosDevice.NewDriver(nil) checkErr(t, err) pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_ft.png" @@ -25,9 +23,7 @@ func TestDriverExt_ForceTouch(t *testing.T) { } func TestDriverExt_TouchAndHold(t *testing.T) { - device, err := NewIOSDevice() - checkErr(t, err) - driverExt, err := device.InitWDAClient() + driverExt, err := iosDevice.NewDriver(nil) checkErr(t, err) pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_ft.png" diff --git a/hrp/step_ios_ui.go b/hrp/step_ios_ui.go index 94107d49..ddf5eb93 100644 --- a/hrp/step_ios_ui.go +++ b/hrp/step_ios_ui.go @@ -503,7 +503,7 @@ func (r *HRPRunner) initUIClient(device uixt.Device) (client *uixt.DriverExt, er } } - client, err = device.NewDriver() + client, err = device.NewDriver(nil) if err != nil { return nil, err }