appium常用的元素定位方法
優先級:
一般情況下選擇定位方法的順序是這樣的 id定位>accessibility_id定位>class定位>xpath定位>tap定位
最后一種tap是不到萬不得已,不建議使用,因為不同手機分辨率不同,導致寫好的代碼在其他手機無法定位到元素。
第一種、通過id定位:resource-id
當目標元素有resource-id且該id唯一,或者排在第一位的時候使用
格式:driver.find_element_by_id()
第二種、通過class_name定位:class
注意class很多都不唯一,所以要驗證一下,一般使用復數定位比較多
格式:driver.find_element_by_class_name()
第三種、通過accessibility_id定位:content-desc
格式:driver.find_element_by_accessibility_id()
第四種、通過xpath定位
格式:driver.find_element_by_xpath()
示例:driver.find_element_by_xpath(//*ele[@class='android.widget.ImageView'])
第五種、通過tap模擬手指點擊定位
格式:driver.tap()
示例:driver.tap([(60,138)],300) 注意着里面的格式(第一個參數時列表,列表里面是元祖)
解釋:第一個是positions,是list類型最多五個點,duration是持續時間,單位毫秒
下圖工具是SDK自帶的java開發的uiautomatorviewer,如果你安裝了jdk,在sdk目錄\tools\bin下 有uiautomatorviewer.bat雙擊打開
還有組合定位,如class和id組合,父子定位,兄弟定位,定位的方法有很多,活學活用,舉一反三,能解決工作中的問題都是可行的
當然除了以上的方法,還有一些不常用的方法,有興趣的可以查看源碼去了解一下,如下: