說說常用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用法圖片:
輕敲用法圖片:
長按用法圖片:
打開指針位置方便根據坐標定位: