mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-08 00:47:36 +08:00
refactor: handlerDrag
This commit is contained in:
@@ -1 +1 @@
|
|||||||
v5.0.0-beta-2505060026
|
v5.0.0-beta-2505060038
|
||||||
|
|||||||
@@ -374,20 +374,13 @@ func (ad *ADBDriver) TouchAndHold(x, y float64, opts ...option.ActionOption) (er
|
|||||||
func (ad *ADBDriver) Drag(fromX, fromY, toX, toY float64, opts ...option.ActionOption) (err error) {
|
func (ad *ADBDriver) Drag(fromX, fromY, toX, toY float64, opts ...option.ActionOption) (err error) {
|
||||||
log.Info().Float64("fromX", fromX).Float64("fromY", fromY).
|
log.Info().Float64("fromX", fromX).Float64("fromY", fromY).
|
||||||
Float64("toX", toX).Float64("toY", toY).Msg("ADBDriver.Drag")
|
Float64("toX", toX).Float64("toY", toY).Msg("ADBDriver.Drag")
|
||||||
actionOptions := option.NewActionOptions(opts...)
|
|
||||||
fromX, fromY, toX, toY, err = convertToAbsoluteCoordinates(ad, fromX, fromY, toX, toY)
|
fromX, fromY, toX, toY, err = handlerDrag(ad, fromX, fromY, toX, toY, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
fromX, fromY, toX, toY = actionOptions.ApplySwipeOffset(fromX, fromY, toX, toY)
|
|
||||||
|
|
||||||
// mark UI operation
|
|
||||||
if actionOptions.MarkOperationEnabled {
|
|
||||||
if markErr := MarkUIOperation(ad, ACTION_Drag, []float64{fromX, fromY, toX, toY}); markErr != nil {
|
|
||||||
log.Warn().Err(markErr).Msg("Failed to mark drag operation")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
actionOptions := option.NewActionOptions(opts...)
|
||||||
duration := 200.0
|
duration := 200.0
|
||||||
if actionOptions.Duration > 0 {
|
if actionOptions.Duration > 0 {
|
||||||
duration = actionOptions.Duration * 1000
|
duration = actionOptions.Duration * 1000
|
||||||
|
|||||||
@@ -356,20 +356,12 @@ func (ud *UIA2Driver) TouchAndHold(x, y float64, opts ...option.ActionOption) (e
|
|||||||
func (ud *UIA2Driver) Drag(fromX, fromY, toX, toY float64, opts ...option.ActionOption) error {
|
func (ud *UIA2Driver) Drag(fromX, fromY, toX, toY float64, opts ...option.ActionOption) error {
|
||||||
log.Info().Float64("fromX", fromX).Float64("fromY", fromY).
|
log.Info().Float64("fromX", fromX).Float64("fromY", fromY).
|
||||||
Float64("toX", toX).Float64("toY", toY).Msg("UIA2Driver.Drag")
|
Float64("toX", toX).Float64("toY", toY).Msg("UIA2Driver.Drag")
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
fromX, fromY, toX, toY, err = convertToAbsoluteCoordinates(ud, fromX, fromY, toX, toY)
|
fromX, fromY, toX, toY, err = handlerDrag(ud, fromX, fromY, toX, toY, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
actionOptions := option.NewActionOptions(opts...)
|
|
||||||
fromX, fromY, toX, toY = actionOptions.ApplySwipeOffset(fromX, fromY, toX, toY)
|
|
||||||
|
|
||||||
// mark UI operation
|
|
||||||
if actionOptions.MarkOperationEnabled {
|
|
||||||
if markErr := MarkUIOperation(ud, ACTION_Drag, []float64{fromX, fromY, toX, toY}); markErr != nil {
|
|
||||||
log.Warn().Err(markErr).Msg("Failed to mark drag operation")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
data := map[string]interface{}{
|
data := map[string]interface{}{
|
||||||
"startX": fromX,
|
"startX": fromX,
|
||||||
|
|||||||
+9
-11
@@ -103,7 +103,13 @@ func NewBrowserDriver(device *BrowserDevice) (driver *BrowserDriver, err error)
|
|||||||
return driver, nil
|
return driver, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (wd *BrowserDriver) Drag(fromX, fromY, toX, toY float64, options ...option.ActionOption) (err error) {
|
func (wd *BrowserDriver) Drag(fromX, fromY, toX, toY float64, opts ...option.ActionOption) error {
|
||||||
|
var err error
|
||||||
|
fromX, fromY, toX, toY, err = handlerDrag(wd, fromX, fromY, toX, toY, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
data := map[string]interface{}{
|
data := map[string]interface{}{
|
||||||
"from_x": fromX,
|
"from_x": fromX,
|
||||||
"from_y": fromY,
|
"from_y": fromY,
|
||||||
@@ -111,21 +117,13 @@ func (wd *BrowserDriver) Drag(fromX, fromY, toX, toY float64, options ...option.
|
|||||||
"to_y": toY,
|
"to_y": toY,
|
||||||
}
|
}
|
||||||
|
|
||||||
actionOptions := option.NewActionOptions(options...)
|
actionOptions := option.NewActionOptions(opts...)
|
||||||
|
|
||||||
// mark UI operation
|
|
||||||
if actionOptions.MarkOperationEnabled {
|
|
||||||
if markErr := MarkUIOperation(wd, ACTION_Drag, []float64{fromX, fromY, toX, toY}); markErr != nil {
|
|
||||||
log.Warn().Err(markErr).Msg("Failed to mark drag operation")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if actionOptions.Duration > 0 {
|
if actionOptions.Duration > 0 {
|
||||||
data["duration"] = actionOptions.Duration
|
data["duration"] = actionOptions.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = wd.HttpPOST(data, wd.sessionId, "ui/drag")
|
_, err = wd.HttpPOST(data, wd.sessionId, "ui/drag")
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (wd *BrowserDriver) AppLaunch(packageName string) (err error) {
|
func (wd *BrowserDriver) AppLaunch(packageName string) (err error) {
|
||||||
|
|||||||
@@ -25,3 +25,23 @@ func handlerTapAbsXY(driver IDriver, rawX, rawY float64, opts ...option.ActionOp
|
|||||||
|
|
||||||
return x, y, duration, nil
|
return x, y, duration, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func handlerDrag(driver IDriver, rawFomX, rawFromY, rawToX, rawToY float64, opts ...option.ActionOption) (
|
||||||
|
fromX, fromY, toX, toY float64, err error) {
|
||||||
|
|
||||||
|
actionOptions := option.NewActionOptions(opts...)
|
||||||
|
fromX, fromY, toX, toY, err = convertToAbsoluteCoordinates(driver, rawFomX, rawFromY, rawToX, rawToY)
|
||||||
|
if err != nil {
|
||||||
|
return 0, 0, 0, 0, err
|
||||||
|
}
|
||||||
|
fromX, fromY, toX, toY = actionOptions.ApplySwipeOffset(fromX, fromY, toX, toY)
|
||||||
|
|
||||||
|
// mark UI operation
|
||||||
|
if actionOptions.MarkOperationEnabled {
|
||||||
|
if markErr := MarkUIOperation(driver, ACTION_Drag, []float64{fromX, fromY, toX, toY}); markErr != nil {
|
||||||
|
log.Warn().Err(markErr).Msg("Failed to mark drag operation")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fromX, fromY, toX, toY, nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user