Appium之模擬手勢點擊坐標(tap)


 

tap模擬手勢點擊坐標

tap是通過給定坐標,模擬手勢點擊頁面上的元素。

參數:第一個是positions,是list類型最多五個(元組表示),duration是持續時間,單位為ms。函數原型如下:

tap(positions, duration=None)
如:driver.tap([(100, 20), (100, 60), (100, 100)], 500)

 

實踐操作:

打開“小猿搜題app”,點擊“猿輔導” -》搜索框,並錄入“熊貓”進行查找。

思路:先通過weditor工具找到需要點擊的坐標點,再在腳本中使用坐標作為參數。

1、工具定位坐標點

 

2、腳本源碼

from appium import webdriver
from time import sleep
from appium.webdriver.common.touch_action import TouchAction

desired_caps = {
    'autoLaunch': 'True',
    'deviceName': 'honor10',
    'platformName': 'Android',
    'platformVersion': '10.0',
    'appPackage': 'com.fenbi.android.solar',
    'appActivity': 'com.fenbi.android.solar.activity.RouterActivity',
    'noReset': 'True',
    "unicodeKeyboard": "True",  # 使用unicode編碼方式發送字符串(以便鍵盤輸入中文)
    "resetKeyboard": "True",    # 在運行具有unicodeKeyboard功能的Unicode測試之后,將鍵盤重置為其原始狀態。若單獨使用,則忽略。(后需手動進入系統修改回原鍵盤輸入法)
}
driver = webdriver.Remote('127.0.0.1:4723/wd/hub', desired_caps)
sleep(3)
TouchAction(driver).tap(x=326, y=2150).release().perform()
# driver.tap([(326, 2211)], 500)    # 有點奇怪,若使用此處的tap函數,不會報錯2211已超出寬高(實際寬高為1080*2190),上一行的tap函數則會包錯,但最后調用的也是同一方法...
# size = driver.get_window_size()
# width = size['width']         # 由於不同手機的寬高像素不同,所以坐標點可改用寬高像素占比的百分比來表示
# height = size['height']
# driver.tap([(width*0.448, height*0.981)])
driver.tap([(875, 150)], 500)
sleep(5)
driver.find_element_by_id("com.fenbi.android.solar:id/search_bar").send_keys("熊貓")  # 報錯Message: Cannot set the element to '熊貓'. Did you interact with the correct element?
sleep(5)
driver.tap([(987, 159)])
sleep(3)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM