change: add capabilities for driver

This commit is contained in:
debugtalk
2022-10-11 20:09:12 +08:00
parent 36b10cfc23
commit 7a0ce219e3
11 changed files with 34 additions and 43 deletions
+4 -4
View File
@@ -106,7 +106,7 @@ func (dev *AndroidDevice) UUID() string {
return dev.SerialNumber return dev.SerialNumber
} }
func (dev *AndroidDevice) NewDriver() (driverExt *DriverExt, err error) { func (dev *AndroidDevice) NewDriver(capabilities Capabilities) (driverExt *DriverExt, err error) {
var deviceOptions []AndroidDeviceOption var deviceOptions []AndroidDeviceOption
if dev.SerialNumber != "" { if dev.SerialNumber != "" {
deviceOptions = append(deviceOptions, WithSerialNumber(dev.SerialNumber)) deviceOptions = append(deviceOptions, WithSerialNumber(dev.SerialNumber))
@@ -122,11 +122,11 @@ func (dev *AndroidDevice) NewDriver() (driverExt *DriverExt, err error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
return androidDevice.InitUIAClient() return androidDevice.initUIAClient(capabilities)
} }
func (dev *AndroidDevice) InitUIAClient() (*DriverExt, error) { func (dev *AndroidDevice) initUIAClient(capabilities Capabilities) (*DriverExt, error) {
driver, err := dev.NewUSBDriver(nil) driver, err := dev.NewUSBDriver(capabilities)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "failed to init UIA driver") return nil, errors.Wrap(err, "failed to init UIA driver")
} }
+4 -1
View File
@@ -12,7 +12,10 @@ func TestIOSDemo(t *testing.T) {
if err != nil { if err != nil {
t.Fatal(err) 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 { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
+1 -3
View File
@@ -7,9 +7,7 @@ import (
) )
func TestDriverExt_Drag(t *testing.T) { func TestDriverExt_Drag(t *testing.T) {
device, err := NewIOSDevice() driverExt, err := iosDevice.NewDriver(nil)
checkErr(t, err)
driverExt, err := device.InitWDAClient()
checkErr(t, err) checkErr(t, err)
pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_map.png" pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_map.png"
+1 -3
View File
@@ -15,9 +15,7 @@ func TestDriverExt_GesturePassword(t *testing.T) {
password[i], _ = strconv.Atoi(split[i]) password[i], _ = strconv.Atoi(split[i])
} }
device, err := NewIOSDevice() driverExt, err := iosDevice.NewDriver(nil)
checkErr(t, err)
driverExt, err := device.InitWDAClient()
checkErr(t, err) checkErr(t, err)
pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_5.png" pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_5.png"
+1 -1
View File
@@ -802,7 +802,7 @@ func WithFrequency(frequency int) DataOption {
// current implemeted device: IOSDevice, AndroidDevice // current implemeted device: IOSDevice, AndroidDevice
type Device interface { type Device interface {
UUID() string UUID() string
NewDriver() (driverExt *DriverExt, err error) NewDriver(capabilities Capabilities) (driverExt *DriverExt, err error)
} }
// WebDriver defines methods supported by WebDriver drivers. // WebDriver defines methods supported by WebDriver drivers.
+8 -6
View File
@@ -140,7 +140,7 @@ func (dev *IOSDevice) UUID() string {
return dev.UDID return dev.UDID
} }
func (dev *IOSDevice) NewDriver() (driverExt *DriverExt, err error) { func (dev *IOSDevice) NewDriver(capabilities Capabilities) (driverExt *DriverExt, err error) {
var deviceOptions []IOSDeviceOption var deviceOptions []IOSDeviceOption
if dev.UDID != "" { if dev.UDID != "" {
deviceOptions = append(deviceOptions, WithUDID(dev.UDID)) deviceOptions = append(deviceOptions, WithUDID(dev.UDID))
@@ -156,15 +156,17 @@ func (dev *IOSDevice) NewDriver() (driverExt *DriverExt, err error) {
if err != nil { if err != nil {
return nil, err 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 // init WDA driver
capabilities := NewCapabilities() if capabilities == nil {
capabilities.WithDefaultAlertAction(AlertActionAccept) capabilities = NewCapabilities()
var driver WebDriver capabilities.WithDefaultAlertAction(AlertActionAccept)
}
var driver WebDriver
if env.WDA_USB_DRIVER == "" { if env.WDA_USB_DRIVER == "" {
// default use http driver // default use http driver
driver, err = dev.NewHTTPDriver(capabilities) driver, err = dev.NewHTTPDriver(capabilities)
+1 -3
View File
@@ -7,9 +7,7 @@ import (
) )
func TestDriverExtOCR(t *testing.T) { func TestDriverExtOCR(t *testing.T) {
device, err := NewIOSDevice() driverExt, err := iosDevice.NewDriver(nil)
checkErr(t, err)
driverExt, err := device.InitWDAClient()
checkErr(t, err) checkErr(t, err)
x, y, width, height, err := driverExt.FindTextByOCR("抖音") x, y, width, height, err := driverExt.FindTextByOCR("抖音")
+1 -3
View File
@@ -7,9 +7,7 @@ import (
) )
func TestSwipeUntil(t *testing.T) { func TestSwipeUntil(t *testing.T) {
device, err := NewIOSDevice() driverExt, err := iosDevice.NewDriver(nil)
checkErr(t, err)
driverExt, err := device.InitWDAClient()
checkErr(t, err) checkErr(t, err)
var point PointF var point PointF
+10 -12
View File
@@ -6,10 +6,14 @@ import (
"testing" "testing"
) )
var iosDevice *IOSDevice
func init() {
iosDevice, _ = NewIOSDevice()
}
func TestDriverExt_TapWithNumber(t *testing.T) { func TestDriverExt_TapWithNumber(t *testing.T) {
device, err := NewIOSDevice() driverExt, err := iosDevice.NewDriver(nil)
checkErr(t, err)
driverExt, err := device.InitWDAClient()
checkErr(t, err) checkErr(t, err)
pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/flag7.png" 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) { func TestDriverExt_TapXY(t *testing.T) {
device, err := NewIOSDevice() driverExt, err := iosDevice.NewDriver(nil)
checkErr(t, err)
driverExt, err := device.InitWDAClient()
checkErr(t, err) checkErr(t, err)
err = driverExt.TapXY(0.4, 0.5, "") err = driverExt.TapXY(0.4, 0.5, "")
@@ -32,9 +34,7 @@ func TestDriverExt_TapXY(t *testing.T) {
} }
func TestDriverExt_TapAbsXY(t *testing.T) { func TestDriverExt_TapAbsXY(t *testing.T) {
device, err := NewIOSDevice() driverExt, err := iosDevice.NewDriver(nil)
checkErr(t, err)
driverExt, err := device.InitWDAClient()
checkErr(t, err) checkErr(t, err)
err = driverExt.TapAbsXY(100, 300, "") err = driverExt.TapAbsXY(100, 300, "")
@@ -42,9 +42,7 @@ func TestDriverExt_TapAbsXY(t *testing.T) {
} }
func TestDriverExt_TapWithOCR(t *testing.T) { func TestDriverExt_TapWithOCR(t *testing.T) {
device, err := NewIOSDevice() driverExt, err := iosDevice.NewDriver(nil)
checkErr(t, err)
driverExt, err := device.InitWDAClient()
checkErr(t, err) checkErr(t, err)
// 需要点击文字上方的图标 // 需要点击文字上方的图标
+2 -6
View File
@@ -7,9 +7,7 @@ import (
) )
func TestDriverExt_ForceTouch(t *testing.T) { func TestDriverExt_ForceTouch(t *testing.T) {
device, err := NewIOSDevice() driverExt, err := iosDevice.NewDriver(nil)
checkErr(t, err)
driverExt, err := device.InitWDAClient()
checkErr(t, err) checkErr(t, err)
pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_ft.png" 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) { func TestDriverExt_TouchAndHold(t *testing.T) {
device, err := NewIOSDevice() driverExt, err := iosDevice.NewDriver(nil)
checkErr(t, err)
driverExt, err := device.InitWDAClient()
checkErr(t, err) checkErr(t, err)
pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_ft.png" pathSearch := "/Users/hero/Documents/temp/2020-05/opencv/IMG_ft.png"
+1 -1
View File
@@ -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 { if err != nil {
return nil, err return nil, err
} }