一、xpath的使用場景:
自動化測試中經常對元素進行操作時,如果存在id、name、content_desc時,可通過appium框架提供的方法find_element_by_id/name/tag_name來直接進行操作,經常會遇到以上屬性都不存在的情況,因此這時我們就開始使用xpath的操作來進行使用,對常用的方法進行梳理,如下:
二、xpath的基本用法
三、示例介紹
1、要求達到的目的:
打開短信---點擊設置---通過xpath的方式,實現點擊“設置”
2、實現的步驟:
1)通過uiautomator Viewer解析出來的結構為:

2)xpath的實現:
第一種方法:self.device.find_element_by_xpath('//android.widget.ListView/android.widget.LinearLayout[4]').click()
解析:(1)xpath中,下標從1開始,不從0開始,因此“設置”的下標為4
(2)仔細的話可以注意到android.widget.ListView為整個彈框的class,詳見下圖,根據圖中示例,可以推斷出,設置:find_element_by_xpath('//android.widget.ListView/android.widget.LinearLayout[4]'),我的收藏:find_element_by_xpath('//android.widget.ListView/android.widget.LinearLayout[1]').

第二種方法:self.device.find_element_by_xpath("//android.widget.TextView[@text = '設置']").click()
解析:通過text來進行點擊設置
第三種方法:self.device.find_element_by_xpath("//android.widget.ListView/android.widget.LinearLayout[last()]").click()
解析:根據上面的截圖就可以看出,設置屬於ListView中的最后一個,因此可以通過last直接點擊,如果是點擊倒數第二個,則使用[last()-1]即可
xpath需要遍歷整個元素樹,生成一個xml數據,然后在做xpath查找,遍歷和在xml中進行xpath都相當的耗時,因此在寫自動化腳本時,盡量避免用xpath,后面遇到了其他的用法在來繼續添加......
| 1.作者:Syw 2.出處:http://www.cnblogs.com/syw20170419/ 3.本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 4.如果文中有什么錯誤,歡迎指出。以免更多的人被誤導。 |
