facebook-wda icon indicating copy to clipboard operation
facebook-wda copied to clipboard

feat: support w3c actions and velocity swipe

Open Linloir opened this issue 1 year ago • 7 comments

Description

Since the facebookarchive/WebDriverAgent has been archived and the current maintained version is the Appium fork, there has been an increasing demand to utilize the new endpoints introduced in the Appium fork. Notably, the /actions endpoint is now being used for complex touch operations.

In response to this demand, I have made some minor adaptations to support these endpoints, specifically implementing support for /actions and /wda/pressAndDragWithVelocity.

Changes

  • Add relevant Classes for W3CActions
  • Support /actions endpoint
  • Support /wda/pressAndDragWithVelocity endpoint

Linloir avatar Nov 18 '24 08:11 Linloir

Also documented W3CActions and its relevant classes

Linloir avatar Nov 21 '24 02:11 Linloir

Added support for /wda/touch/multi/perform endpoint for wda under v7.0.0

Linloir avatar Nov 21 '24 05:11 Linloir

今天早上review了一下,在想是否真的需要这么多的类(TouchTap, TouchLongPress,TouchPress,TouchMovement,FingerMovement) 这些类做了什么呢, with_xy, with_origin,部分类还有with_pressure 都是用来初始化类的成员变量的,而其他的方法并没有,既然如此去掉这些类是否可行呢。

我构思了一下,下面的方法是否可行呢。去掉这些类,直接把值传过去。功能效果一样,代码确更少了。

FingerAction().move(x, y).down.pause(0.1).up()
TouchActions().press(x, y, pressure=1).pause(.1).up() # 补充疑问,为什这里是.. Actions,而上面是..Action

codeskyblue avatar Nov 22 '24 01:11 codeskyblue

need a little update

unlimitedcodeG avatar Nov 24 '24 14:11 unlimitedcodeG

今天早上review了一下,在想是否真的需要这么多的类(TouchTap, TouchLongPress,TouchPress,TouchMovement,FingerMovement) 这些类做了什么呢, with_xy, with_origin,部分类还有with_pressure 都是用来初始化类的成员变量的,而其他的方法并没有,既然如此去掉这些类是否可行呢。

我构思了一下,下面的方法是否可行呢。去掉这些类,直接把值传过去。功能效果一样,代码确更少了。

FingerAction().move(x, y).down.pause(0.1).up()
TouchActions().press(x, y, pressure=1).pause(.1).up() # 补充疑问,为什这里是.. Actions,而上面是..Action

不愧是蓝哥, 这么优雅

unlimitedcodeG avatar Nov 24 '24 14:11 unlimitedcodeG

今天早上review了一下,在想是否真的需要这么多的类(TouchTap, TouchLongPress,TouchPress,TouchMovement,FingerMovement)

这些类做了什么呢, with_xy, with_origin,部分类还有with_pressure 都是用来初始化类的成员变量的,而其他的方法并没有,既然如此去掉这些类是否可行呢。

我构思了一下,下面的方法是否可行呢。去掉这些类,直接把值传过去。功能效果一样,代码确更少了。


FingerAction().move(x, y).down.pause(0.1).up()

TouchActions().press(x, y, pressure=1).pause(.1).up() # 补充疑问,为什这里是.. Actions,而上面是..Action

确实在类的实现上面是有些冗余和重复了,下周 update 下

另,TouchActions 其实是为了对齐 W3CActions 的命名,不过 W3CActions 是多个 Actions 的并集,TouchAction 应该只对应一个滑动操作,这里应该确实是和 FingerAction 对齐会更好一些(?)

Linloir avatar Nov 24 '24 14:11 Linloir

今天早上review了一下,在想是否真的需要这么多的类(TouchTap, TouchLongPress,TouchPress,TouchMovement,FingerMovement) 这些类做了什么呢, with_xy, with_origin,部分类还有with_pressure 都是用来初始化类的成员变量的,而其他的方法并没有,既然如此去掉这些类是否可行呢。 我构思了一下,下面的方法是否可行呢。去掉这些类,直接把值传过去。功能效果一样,代码确更少了。

FingerAction().move(x, y).down.pause(0.1).up()

TouchActions().press(x, y, pressure=1).pause(.1).up() # 补充疑问,为什这里是.. Actions,而上面是..Action

确实在类的实现上面是有些冗余和重复了,下周 update 下

另,TouchActions 其实是为了对齐 W3CActions 的命名,不过 W3CActions 是多个 Actions 的并集,TouchAction 应该只对应一个滑动操作,这里应该确实是和 FingerAction 对齐会更好一些(?)

其实我们封装代码的最终目的是为了更方便的去使用,如果增加了更多的类,却没有可读性和易用性的提升,其实类的封装反而是个累赘。没有必要完全对其,毕竟最终追求的是方便。

codeskyblue avatar Nov 27 '24 09:11 codeskyblue