appium通過index查找目標控件


2.1 通過判斷控件屬性獲取控件

控件的所有屬性都可以用作判斷,比如它的text,index,resource-id是否clickable等,例如:

2.1.1 通過文本查找目標控件

1
2
el  =  driver.findElementByXPath( "//android.widget.TextView[contains(@text,'note2')]" );
         assertThat(el.getText(),equalTo( "note2" ));

 

2.1.2 通過index查找目標控件

如果我們像下面的方式使用index為0來查找控件note2,那么將會失敗,因為該xpath只是說“我要查找頁面上 android.widget.TextView類型的index為0的控件“,但如背景所說我們事實上有3個TextView控件,其中最上面的和中間 的控件他們的Index都是0.所以最終獲得的控件其實是Appium第一個找到的最上面文本為”Notes“的TextView。
1
2
el  =  driver.findElementByXPath( "//android.widget.TextView[contains(@index,0)]" );
         assertThat(el.getText(),equalTo( "note2" ));

 那么我們就要想辦法加多點路徑,讓xpath能分辨出需要的是下面的index為0的TextView,而不是上面的。觀看上圖的 UIAutomatorViewer控件的分層結構,發現這兩個TextView是從LinearLayout開始分叉的,所以我們應該從該路徑開始通過 數組下標指定我們需要的是”在LinearLayout下面的第二個FrameLayout下面的ListView下面的Index為0的 TextView:

1
2
el  =  driver.findElementByXPath( "//android.widget.LinearLayout[1]/android.widget.FrameLayout/android.widget.ListView/android.widget.TextView[contains(@index,0)]" );
         assertThat(el.getText(),equalTo( "note2" ));


免責聲明!

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



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