appium python 點擊坐標 tap
有時候定位元素的時候,你使出了十八班武藝還是定位不到,怎么辦呢?(面試經常會問)
那就拿出絕招:點元素所在位置的坐標
tap用法
1.tap是模擬手指點擊,一般頁面上元素
的語法有兩個參數,第一個是positions,是list類型最多五個點,duration是持續時間,單位毫秒
tap(self, positions, duration=None): Taps on an particular place with up to five fingers, holding for a certain time 模擬手指點擊(最多五個手指),可設置按住時間長度(毫秒) :Args: - positions - list類型,里面對象是元組,最多五個。如:[(100, 20), (100, 60)] - duration - 持續時間,單位毫秒,如:500 :Usage: driver.tap([(100, 20), (100, 60), (100, 100)], 500)
坐標定位
1.如下圖定位"去看看"這個按鈕的坐標,可以看到右側bonds屬性:[374,831][654,906]
2.點右上角"搜索"按鈕,查看bonds屬性:[615,52][690,146]
參考案例
# coding:utf-8 from appium import webdriver from time import sleep desired_caps = { 'platformName': 'Android', 'deviceName': '127.0.0.1:62001', 'platformVersion': '4.4.2', 'appPackage': 'com.baidu.yuedu', 'appActivity': 'com.baidu.yuedu.splash.SplashActivity' } driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) sleep(5) # 點彈出框去看看 driver.tap([(374, 831), (654, 906)], 500) # 返回上一頁 driver.back() sleep(2) # 點右上角搜素按鈕 driver.tap([(615, 52), (690, 146)], 500)
弊端
通過坐標定位是元素定位的下下下策,實在沒辦法才用這個,另外如果換了手機分辨率,這個坐標就不能寫死了,得算出所在屏幕的比例。