diff --git a/pkg/uixt/driver.go b/pkg/uixt/driver.go index 1e063c5b..25e5b903 100644 --- a/pkg/uixt/driver.go +++ b/pkg/uixt/driver.go @@ -101,9 +101,22 @@ func (dExt *XTDriver) GetIDriver() IDriver { return dExt.IDriver } +func (dExt *XTDriver) GetWebDriver() IBrowserWebDriver { + return dExt.GetIDriver().(*BrowserWebDriver) +} + type IXTDriver interface { IDriver GetIDriver() IDriver + GetWebDriver() IBrowserWebDriver GetScreenResult(opts ...option.ActionOption) (screenResult *ScreenResult, err error) DoAction(action MobileAction) (err error) } + +type IBrowserWebDriver interface { + IDriver + Hover(x, y float64) (err error) + RightClick(x, y int) (err error) + Scroll(delta int) (err error) + UploadFile(x, y float64, FileUrl, FileFormat string) (err error) +} diff --git a/pkg/uixt/driver_ext/ext.go b/pkg/uixt/driver_ext/ext.go index b55a1f91..e49ffc76 100644 --- a/pkg/uixt/driver_ext/ext.go +++ b/pkg/uixt/driver_ext/ext.go @@ -68,3 +68,7 @@ func (dExt *XTDriver) Install(filePath string, opts ...option.InstallOption) err return dExt.GetDevice().Install(filePath, opts...) } + +func (dExt *XTDriver) GetWebDriver() uixt.IBrowserWebDriver { + return dExt.GetIDriver().(*StubBrowserDriver) +} diff --git a/server/ui.go b/server/ui.go index 0c65b9f1..77cb48de 100644 --- a/server/ui.go +++ b/server/ui.go @@ -2,7 +2,6 @@ package server import ( "github.com/gin-gonic/gin" - "github.com/httprunner/httprunner/v5/pkg/uixt" "github.com/httprunner/httprunner/v5/pkg/uixt/option" ) @@ -42,7 +41,7 @@ func (r *Router) uploadHandler(c *gin.Context) { RenderError(c, err) return } - err = driver.GetIDriver().(*uixt.BrowserWebDriver).UploadFile(uploadRequest.X, uploadRequest.Y, uploadRequest.FileUrl, uploadRequest.FileFormat) + err = driver.GetWebDriver().UploadFile(uploadRequest.X, uploadRequest.Y, uploadRequest.FileUrl, uploadRequest.FileFormat) if err != nil { c.Abort() return @@ -62,7 +61,7 @@ func (r *Router) hoverHandler(c *gin.Context) { return } - err = driver.GetIDriver().(*uixt.BrowserWebDriver).Hover(hoverReq.X, hoverReq.Y) + err = driver.GetWebDriver().Hover(hoverReq.X, hoverReq.Y) if err != nil { RenderError(c, err) @@ -84,7 +83,7 @@ func (r *Router) scrollHandler(c *gin.Context) { return } - err = driver.GetIDriver().(*uixt.BrowserWebDriver).Scroll(scrollReq.Delta) + err = driver.GetWebDriver().Scroll(scrollReq.Delta) if err != nil { RenderError(c, err)