Files
httprunner/server/ui.go
2025-02-18 20:22:07 +08:00

99 lines
2.0 KiB
Go

package server
import (
"github.com/gin-gonic/gin"
"github.com/httprunner/httprunner/v5/pkg/uixt/option"
)
func tapHandler(c *gin.Context) {
var tapReq TapRequest
if err := c.ShouldBindJSON(&tapReq); err != nil {
RenderErrorValidateRequest(c, err)
return
}
driver, err := GetDriver(c)
if err != nil {
return
}
if tapReq.Duration > 0 {
err = driver.Drag(tapReq.X, tapReq.Y, tapReq.X, tapReq.Y,
option.WithDuration(tapReq.Duration),
option.WithAbsoluteCoordinate(true))
} else {
err = driver.TapAbsXY(tapReq.X, tapReq.Y)
}
if err != nil {
RenderError(c, err)
return
}
RenderSuccess(c, true)
}
func doubleTapHandler(c *gin.Context) {
var tapReq TapRequest
if err := c.ShouldBindJSON(&tapReq); err != nil {
RenderErrorValidateRequest(c, err)
return
}
driver, err := GetDriver(c)
if err != nil {
return
}
if tapReq.X < 1 && tapReq.Y < 1 {
err = driver.DoubleTapXY(tapReq.X, tapReq.Y)
} else {
err = driver.DoubleTapXY(tapReq.X, tapReq.Y,
option.WithAbsoluteCoordinate(true))
}
if err != nil {
RenderError(c, err)
return
}
RenderSuccess(c, true)
}
func dragHandler(c *gin.Context) {
var dragReq DragRequest
if err := c.ShouldBindJSON(&dragReq); err != nil {
RenderErrorValidateRequest(c, err)
return
}
if dragReq.Duration == 0 {
dragReq.Duration = 1
}
driver, err := GetDriver(c)
if err != nil {
return
}
err = driver.Drag(dragReq.FromX, dragReq.FromY, dragReq.ToX, dragReq.ToY,
option.WithDuration(dragReq.Duration), option.WithPressDuration(dragReq.PressDuration),
option.WithAbsoluteCoordinate(true))
if err != nil {
RenderError(c, err)
return
}
RenderSuccess(c, true)
}
func inputHandler(c *gin.Context) {
var inputReq InputRequest
if err := c.ShouldBindJSON(&inputReq); err != nil {
RenderErrorValidateRequest(c, err)
return
}
driver, err := GetDriver(c)
if err != nil {
return
}
err = driver.Input(inputReq.Text, option.WithFrequency(inputReq.Frequency))
if err != nil {
RenderError(c, err)
return
}
RenderSuccess(c, true)
}