【Appium】使用W3C actions方法长按元素

前言

  • appium2.0 之前,在移动端设备上的触屏操作,单手指触屏和多手指触屏分别是由 TouchAction 类,Multiaction 类实现的。
  • appium2.0 之后,这 2 个方法将会被舍弃。会报如下错误:

"[Deprecated] 'TouchAction' action is deprecated. Please use W3C actions instead."

目录

🍑Appium2.0之前长按元素方法:

🍓方法:

🍓代码如下:

🍑Appium2.0之后长按元素方法:

🍓思路:

🍓代码如下:


🍑Appium2.0之长按元素方法:

2.0之前使用TouchAction方法

🍓方法:

  • 导入TouchAction类库
  • 定位要长按的元素
  • 使用TouchAction的long_press方法,指定等待时间3s。(Note:此处wait单位为ms。)
  • 长按之后要松开,所以用了一个click方法。

🍓代码如下:

# 导入类库
from appium.webdriver.common.touch_action import TouchAction

# 定位想要长按的元素
el = driver.find_element(By.ID, 'com.android.calculator2:id/clr')

# 使用long_press方法
TouchAction(driver).long_press(el).perform().wait(3000)
driver.find_element(By.ID, 'com.android.calculator2:id/clr').click()

🍑Appium2.0之长按元素方法:

2.0之后使用ActionChains的w3c_actions方法。

🍧找了很多文章,但是都没有找到关于W3C长按元素的的直接用法,所以参考官方说明文档网络驱动程序 (w3.org)以及该篇中的一些介绍写的方法,如果你有更好的,可以在评论区告诉我哦。

概念什么的就不介绍了,直接查看官方说明即可。参考selenium源码如下,当然不止这些用法,这里只放了我参考的源码。

🍓思路:

  • 导入selenium的ActionChains类库
  • 使用指针输入源pointer的鼠标操作PointerActions,如上图。
  • 定位要长按的元素
  • 使用click_and_hold方法按住元素并保持
  • 使用pause方法指定按住的停顿时间2s(Note:单位为s)
  • 使用release方法松开鼠标
  • 最后使用perform方法执行以上操作。

🍓代码如下:

# 导入类库
from selenium.webdriver import ActionChains

# 定位需要长按的元素
el = driver.find_element(By.ID, 'com.android.calculator2:id/clr')

# 使用Ww3c长按该元素
actions = ActionChains(driver)
# 使用click_and_hold方法按住元素并保持
actions.w3c_actions.pointer_action.click_and_hold(el)
# 使用pause方法指定按住的停顿时间2s
actions.w3c_actions.pointer_action.pause(2)
# 使用release方法松开鼠标
actions.w3c_actions.pointer_action.release()
# 最后使用perform方法执行以上操作。
actions.perform()

🍃 本篇就只介绍w3c_actions的长按用法了,其他用法后续在慢慢更新了。

  • 18
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BetterFate!

爱你哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值