fix: toScale

This commit is contained in:
lilong.129
2025-07-01 22:18:40 +08:00
parent d8eb882ece
commit 62497da0a7
2 changed files with 35 additions and 16 deletions
+1 -1
View File
@@ -1 +1 @@
v5.0.0-250628 v5.0.0-250701
+34 -15
View File
@@ -309,16 +309,16 @@ func (wd *WDADriver) ScreenShot(opts ...option.ActionOption) (raw *bytes.Buffer,
return raw, nil return raw, nil
} }
func (wd *WDADriver) toScale(x float64) float64 { func (wd *WDADriver) toScale(x float64) (float64, error) {
if wd.scale == 0 { if wd.scale == 0 {
// not setup yet // not setup yet
var err error var err error
if wd.scale, err = wd.Scale(); err != nil { if wd.scale, err = wd.Scale(); err != nil {
log.Error().Err(err).Msg("init scale failed") log.Error().Err(err).Msg("get screen scale failed")
// Todo: os.Exit(code.GetErrorCode(err)) 添加error处理。 return 0, err
} }
} }
return x / wd.scale return x / wd.scale, nil
} }
func (wd *WDADriver) ActiveAppInfo() (info types.AppInfo, err error) { func (wd *WDADriver) ActiveAppInfo() (info types.AppInfo, err error) {
@@ -537,11 +537,16 @@ func (wd *WDADriver) TapAbsXY(x, y float64, opts ...option.ActionOption) error {
log.Info().Float64("x", x).Float64("y", y).Msg("WDADriver.TapAbsXY") log.Info().Float64("x", x).Float64("y", y).Msg("WDADriver.TapAbsXY")
// [[FBRoute POST:@"/wda/tap/:uuid"] respondWithTarget:self action:@selector(handleTap:)] // [[FBRoute POST:@"/wda/tap/:uuid"] respondWithTarget:self action:@selector(handleTap:)]
x = wd.toScale(x) var err error
y = wd.toScale(y) if x, err = wd.toScale(x); err != nil {
return err
}
if y, err = wd.toScale(y); err != nil {
return err
}
actionOptions := option.NewActionOptions(opts...) actionOptions := option.NewActionOptions(opts...)
x, y, err := preHandler_TapAbsXY(wd, actionOptions, x, y) x, y, err = preHandler_TapAbsXY(wd, actionOptions, x, y)
if err != nil { if err != nil {
return err return err
} }
@@ -561,11 +566,16 @@ func (wd *WDADriver) DoubleTap(x, y float64, opts ...option.ActionOption) error
log.Info().Float64("x", x).Float64("y", y).Msg("WDADriver.DoubleTap") log.Info().Float64("x", x).Float64("y", y).Msg("WDADriver.DoubleTap")
// [[FBRoute POST:@"/wda/doubleTap"] respondWithTarget:self action:@selector(handleDoubleTapCoordinate:)] // [[FBRoute POST:@"/wda/doubleTap"] respondWithTarget:self action:@selector(handleDoubleTapCoordinate:)]
x = wd.toScale(x) var err error
y = wd.toScale(y) if x, err = wd.toScale(x); err != nil {
return err
}
if y, err = wd.toScale(y); err != nil {
return err
}
actionOptions := option.NewActionOptions(opts...) actionOptions := option.NewActionOptions(opts...)
x, y, err := preHandler_DoubleTap(wd, actionOptions, x, y) x, y, err = preHandler_DoubleTap(wd, actionOptions, x, y)
if err != nil { if err != nil {
return err return err
} }
@@ -595,13 +605,22 @@ func (wd *WDADriver) Drag(fromX, fromY, toX, toY float64, opts ...option.ActionO
Float64("toX", toX).Float64("toY", toY).Msg("WDADriver.Drag") Float64("toX", toX).Float64("toY", toY).Msg("WDADriver.Drag")
// [[FBRoute POST:@"/wda/dragfromtoforduration"] respondWithTarget:self action:@selector(handleDragCoordinate:)] // [[FBRoute POST:@"/wda/dragfromtoforduration"] respondWithTarget:self action:@selector(handleDragCoordinate:)]
fromX = wd.toScale(fromX) var err error
fromY = wd.toScale(fromY) if fromX, err = wd.toScale(fromX); err != nil {
toX = wd.toScale(toX) return err
toY = wd.toScale(toY) }
if fromY, err = wd.toScale(fromY); err != nil {
return err
}
if toX, err = wd.toScale(toX); err != nil {
return err
}
if toY, err = wd.toScale(toY); err != nil {
return err
}
actionOptions := option.NewActionOptions(opts...) actionOptions := option.NewActionOptions(opts...)
fromX, fromY, toX, toY, err := preHandler_Drag(wd, actionOptions, fromX, fromY, toX, toY) fromX, fromY, toX, toY, err = preHandler_Drag(wd, actionOptions, fromX, fromY, toX, toY)
if err != nil { if err != nil {
return err return err
} }