appium的xpath定位

作自動化,元素定位是咱們遇到的第一個困難。老是會有各類各樣的問題,致使咱們定位不到元素。前面一篇博客也寫了元素定位的幾種方法,今天主要分享一下xpath的定位方法。android

這裏咱們仍然拿計算器舉例。ui

好比我這裏想去定位這個數字1的按鈕。spa

首先打開UIuiautomatorviewerblog

 

咱們鼠標點擊一下數字7能夠看到這個按鈕的位置。咱們上一篇中也說到了,在元素的屬性中,class就是xpath的地址,咱們是能夠經過class來寫xpath的。element

那麼這裏咱們就能夠寫成:get

find_element_by_xpath("//android.support.v4.view.ViewPager/android.widget.LinearLayout/android.widget.LinearLayout[3]/android.widget.Button[1]")
看到這裏感受就像是剝洋蔥同樣。從外往裏一層一層的剝,最終找到咱們要定位的目標。
在這裏須要注意的是咱們在xpath定位的時候不能從最外層的整個頁面開始,那樣是會報錯的。要從包含該控件的最上層的class開始寫,什麼是包含該控件的最上層元素呢?就好比這裏的android.support.v4.view.ViewPager,咱們點擊這個能夠發現
android.support.v4.view.ViewPager實際上就是整個鍵盤的區域。而後在鍵盤的區域中對數字鍵1再進行定位。
還有就是上面我寫的是android.widget.LinearLayout[3]/android.widget.Button[1]而不是android.widget.LinearLayout[2]/android.widget.Button[0]貌似和咱們的UIuiautomatorviewer獲取到的信息不同,那麼爲何會是這樣呢?筆者其實也解釋不清楚,哈哈。只是我以爲android.widget.LinearLayout[3]/android.widget.Button[1]是去定位第三個android.widget.LinearLayout中的第一個android.widget.Button元素。我記得我在書上看到的說法是xpath中的元素定位都是從1開始而不是從0開始,因此我經過android.widget.LinearLayout[3]/android.widget.Button[1]去定位到數字1的控件。這裏講的可能不對,我也在尋找答案中,找到答案後再更新過來。
相關文章
相關標籤/搜索