首先从appium库里面导入webdriver,然后webdriver.Remote()声明driver对象。
想要使用TouchAction,必须要创建TouchAction对象,通过对象调用想要执行的手势,通过perform()执行动作。
#导入TouchAction
from appium.webdriver.common.touch_action import TouchAction
1、最常见的点击方式click()方法 。
driver.find_element_by_id("com.android.settings:id/search").click()
2、手指轻敲屏幕操作tap()方法。
tap(element,x,y)可以通过元素定位的方式敲击,也可以通过元素坐标的方式。
# 通过元素定位方式敲击屏幕
el = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
TouchAction(driver).tap(el).perform()
#perform()方法发送命令到服务器执行操作
# 通过坐标方式敲击屏幕,元素坐标:x=149,y=324
TouchAction(driver).tap(x=149,y=324).perform()
3、手指按下操作press()方法。
press(elemnet,x,y)可以通过元素定位的方式按下,也可以通过元素坐标的方式按下。
release()方法为结束动作,手指按下之后离开屏幕。
# 通过元素定位方式按下屏幕
el = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
TouchAction(driver).press(el).release().perform()
#通过坐标的方式,元素坐标x=149,y=324
TouchAction(driver).press(147,324).release().perform()
4、模拟手指长按操作long_press()方法。
长按相对于按下来说增加了按下的时间长短,所以参数多了一个duration单位是毫秒。
long_press(elemnet,x,y,duration)也是可以通过元素定位的方式按下,也可以通过元素坐标的方式按下。
el =driver.find_element_by_id("android:id/title")
# 通过元素定位方式长按元素
TouchAction(driver).long_press(el,duration=5000).release().perform()
# 通过坐标方式长按元素,WiredSSID坐标:x=770,y=667
#wait(5000)等待五秒
# 添加等待(有长按X效果)/不添加等待(无长按效果)
TouchAction(driver).long_press(x=770,y=667,duration=5000).release().perform()