diff --git a/hrp/pkg/uixt/android_device.go b/hrp/pkg/uixt/android_device.go index ec1d836f..3832200b 100644 --- a/hrp/pkg/uixt/android_device.go +++ b/hrp/pkg/uixt/android_device.go @@ -170,15 +170,10 @@ func (dev *AndroidDevice) NewDriver(options ...DriverOption) (driverExt *DriverE return nil, errors.Wrap(err, "failed to init UIA driver") } - driverExt, err = newDriverExt(dev, driver) + driverExt, err = newDriverExt(dev, driver, driverOptions.plugin) if err != nil { return nil, err } - err = driverExt.extendCV() - if err != nil { - return nil, errors.Wrap(code.MobileUIDriverError, - fmt.Sprintf("extend OpenCV failed: %v", err)) - } if dev.LogOn { err = driverExt.Driver.StartCaptureLog("hrp_adb_log") diff --git a/hrp/pkg/uixt/ext.go b/hrp/pkg/uixt/ext.go index 8ee4c0c7..bad49c19 100644 --- a/hrp/pkg/uixt/ext.go +++ b/hrp/pkg/uixt/ext.go @@ -24,6 +24,7 @@ import ( "github.com/rs/zerolog/log" "github.com/httprunner/httprunner/v4/hrp/internal/builtin" + "github.com/httprunner/httprunner/v4/hrp/internal/code" "github.com/httprunner/httprunner/v4/hrp/internal/env" ) @@ -97,13 +98,21 @@ type DriverExt struct { plugin funplugin.IPlugin } -func newDriverExt(device Device, driver WebDriver) (dExt *DriverExt, err error) { +func newDriverExt(device Device, driver WebDriver, plugin funplugin.IPlugin) (dExt *DriverExt, err error) { dExt = &DriverExt{ Device: device, Driver: driver, + plugin: plugin, cacheStepData: cacheStepData{}, interruptSignal: make(chan os.Signal, 1), } + + err = dExt.extendCV() + if err != nil { + return nil, errors.Wrap(code.MobileUIDriverError, + fmt.Sprintf("extend OpenCV failed: %v", err)) + } + dExt.cacheStepData.reset() signal.Notify(dExt.interruptSignal, syscall.SIGTERM, syscall.SIGINT) dExt.doneMjpegStream = make(chan bool, 1) diff --git a/hrp/pkg/uixt/ios_device.go b/hrp/pkg/uixt/ios_device.go index 32ad08c9..bc0842d9 100644 --- a/hrp/pkg/uixt/ios_device.go +++ b/hrp/pkg/uixt/ios_device.go @@ -322,15 +322,11 @@ func (dev *IOSDevice) NewDriver(options ...DriverOption) (driverExt *DriverExt, } } - driverExt, err = newDriverExt(dev, driver) + driverExt, err = newDriverExt(dev, driver, driverOptions.plugin) if err != nil { return nil, err } - err = driverExt.extendCV() - if err != nil { - return nil, errors.Wrap(code.MobileUIDriverError, - fmt.Sprintf("extend OpenCV failed: %v", err)) - } + settings, err := driverExt.Driver.SetAppiumSettings(map[string]interface{}{ "snapshotMaxDepth": dev.SnapshotMaxDepth, "acceptAlertButtonSelector": dev.AcceptAlertButtonSelector, diff --git a/hrp/runner.go b/hrp/runner.go index b7aa285f..9f8af0de 100644 --- a/hrp/runner.go +++ b/hrp/runner.go @@ -435,7 +435,7 @@ func (r *CaseRunner) parseConfig() error { if err != nil { return errors.Wrap(err, "init iOS device failed") } - client, err := device.NewDriver() + client, err := device.NewDriver(uixt.WithDriverPlugin(r.parser.plugin)) if err != nil { return errors.Wrap(err, "init iOS WDA client failed") } @@ -454,7 +454,7 @@ func (r *CaseRunner) parseConfig() error { if err != nil { return errors.Wrap(err, "init Android device failed") } - client, err := device.NewDriver() + client, err := device.NewDriver(uixt.WithDriverPlugin(r.parser.plugin)) if err != nil { return errors.Wrap(err, "init Android client failed") } diff --git a/hrp/step_mobile_ui.go b/hrp/step_mobile_ui.go index 0b75ac6f..c9f8f005 100644 --- a/hrp/step_mobile_ui.go +++ b/hrp/step_mobile_ui.go @@ -538,7 +538,7 @@ func (r *CaseRunner) initUIClient(uuid string, osType string) (client *uixt.Driv return nil, errors.Wrapf(err, "init %s device failed", osType) } - client, err = device.NewDriver() + client, err = device.NewDriver(uixt.WithDriverPlugin(r.parser.plugin)) if err != nil { return nil, err }