appium自动化之手势操作总结(附带手势解锁)

说说常用appium做自动化经常会用到的手势操作。声明:所有的手势操作都会用到这个模块   from appium.webdriver.common.touch_action import TouchAction

操作时都得传入driver对象,执行时都用上.perfrom()才能生效,使用move_to根据坐标移动手势,记得打开开发者模式里面的指针位置

1:轻敲   tap,类似于click点击

使用方法:可以传元素或者是坐标

# todo 传元素点击轻敲

TouchAction(driver).tap(more_button).perform()

todo 传坐标点击

TouchAction(driver).tap(x=680,y=1045).perform()

2:按压   press   

使用方法:可以传元素或者是坐标

el = driver.find_element_by_xpath('//*[@text="开放源代码许可"]')

# todo 按压5秒后释放

TouchAction(driver).press(el).wait(5000).release().perform()

3:长按   long_press

使用方法:可以传元素或者是坐标

# todo 长按6秒

el = driver.find_element_by_xpath('//*[@text="WiredSSID"]')

TouchAction(driver).long_press(el=el,duration=6000).perform()

4:等待   wait

使用方法:参考上面,传等待时间

5:release   释放

使用方法:参考上面,按压完成后就释放手指

6:perfrom   执行

使用方法:参考上面,任何手势操作都得用它才能执行

7:move_to   移动

使用方法:可以传元素或者是坐标,坐标根据x,y轴的位置移动,具体参考下面手势解锁demo

# todo 实现滑动解锁的功能
from appium import webdriver
import time
from appium.webdriver.common.touch_action import TouchAction

desired_caps = {
    "platformName":"Android",
    "platformVersion":"5.1",
    "deviceName":"127.0.0.1:62001",
    "appPackage":"com.android.settings",
    "appActivity":".ChooseLockPattern"
               }

# 声明driver对象
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

# todo 执行手势
# todo 根据坐标移动手势,记得打开指针位置
# todo 一边按压,一边移动距离
TouchAction(driver).press(x=172,y=622).move_to(x=538,y=620).\
    move_to(x=905,y=625).move_to(x=537,y=976).move_to(x=176,y=1343).\
    move_to(x=537,y=1340).move_to(x=902,y=1343).perform()

time.sleep(1)
driver.quit()

move_to用法图片:

轻敲用法图片:

长按用法图片:

打开指针位置方便根据坐标定位:

原文地址:https://www.cnblogs.com/xiamaojjie/p/11462199.html