mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 02:21:29 +08:00
84 lines
2.5 KiB
Go
84 lines
2.5 KiB
Go
package uixt
|
|
|
|
import (
|
|
"github.com/httprunner/httprunner/v5/uixt/option"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
func handlerTapAbsXY(driver IDriver, rawX, rawY float64, opts ...option.ActionOption) (
|
|
x, y float64, err error) {
|
|
|
|
actionOptions := option.NewActionOptions(opts...)
|
|
x, y = actionOptions.ApplyTapOffset(rawX, rawY)
|
|
|
|
// mark UI operation
|
|
if actionOptions.MarkOperationEnabled {
|
|
if markErr := MarkUIOperation(driver, ACTION_TapAbsXY, []float64{x, y}); markErr != nil {
|
|
log.Warn().Err(markErr).Msg("Failed to mark tap operation")
|
|
}
|
|
}
|
|
|
|
return x, y, nil
|
|
}
|
|
|
|
func handlerDoubleTap(driver IDriver, rawX, rawY float64, opts ...option.ActionOption) (
|
|
x, y float64, err error) {
|
|
|
|
x, y, err = convertToAbsolutePoint(driver, rawX, rawY)
|
|
if err != nil {
|
|
return 0, 0, err
|
|
}
|
|
|
|
actionOptions := option.NewActionOptions(opts...)
|
|
x, y = actionOptions.ApplyTapOffset(x, y)
|
|
|
|
// mark UI operation
|
|
if actionOptions.MarkOperationEnabled {
|
|
if markErr := MarkUIOperation(driver, ACTION_DoubleTapXY, []float64{x, y}); markErr != nil {
|
|
log.Warn().Err(markErr).Msg("Failed to mark double tap operation")
|
|
}
|
|
}
|
|
|
|
return x, y, 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
|
|
}
|
|
|
|
func handlerSwipe(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_Swipe, []float64{fromX, fromY, toX, toY}); markErr != nil {
|
|
log.Warn().Err(markErr).Msg("Failed to mark swipe operation")
|
|
}
|
|
}
|
|
|
|
return fromX, fromY, toX, toY, nil
|
|
}
|