说说常用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用法图片:
轻敲用法图片:
长按用法图片:
打开指针位置方便根据坐标定位: