4、通過uiautomatorviewer實現appium元素定位

來源:互聯網
上載者:User

標籤:分享   class   id重複   使用者安裝   info   access   遍曆   ppi   類庫   

熟悉selenium自動化的小夥伴應該知道WebDriver 提供了八種元素定位方法:

id
name
class name
tag name
link text
partial link text
xpath
css selector

appium元素定位和WebDriver略微有些差異,具體差異在哪裡,下面會具體介紹,在此之前,我們先開啟uiautomatorviewer.bat(在sdk/tools路徑下)

 

appium元素定位一:通過 Id 定位

 

如所示resource-id 就是我們要找的 Id 了

使用方法:

driver.findElement(By.id("com.android.calculator2:id/digit_9"))

 

appium元素定位二:通過Class Name  定位

使用 ClassName 一般獲得的 view 都不止一個, 所以應該需要遍曆一遍得到的 views, 然後縮小搜尋條件來獲得目標控制項。 不推薦使用

driver.findElement(By.ClassName("android.widget.Button"));

 

appium元素定位三:通過XPath   定位

找父標籤的class

 

driver.findElement(By.xpath("android.widget.FrameLayout/android.support.v4.view.ViewPager/android.widget.Button"))

 

appium元素定位四:通過Accessibility ID  定位

這個方法屬於 Appium 擴充的定位方法。Accessibility ID 在 Android 上面就等同於 contentDescription。 這個屬性是方便一些生理功能有缺陷的
人使用應用程式的。 比如我們有一個 ImageView 裡面放置一張顏色複雜的圖片, 可能一些色弱色盲的人,分不清這張圖片中畫的是什麼東西。 如果使用者安裝了輔助瀏覽工具比如 TalkBack, TalkBack 就會大聲朗
讀出使用者目前正在瀏覽的內容。 TextView 控制項 TalkBack 可以直接讀出裡面的內容, 但是 ImageView,TalkBack 就只能去讀 contentDescription 的值, 告訴使用者這個圖片到底是什麼。
鑒於這是一個隱藏屬性, 而 Android 上用於尋找控制項的各種屬性可能有所缺失或者有重複(比如 id重複, 比如一個 list 下面的所有項可能都是叫做“id/text1”) , 所以最佳的辦法就是跟Team Dev溝通好每個
view 都賦予一個唯一的 contentDescription。其實, 我們的核心是要找到元素的 contentDescription 屬性。 它就是元素的 content-desc 。 

driver.findElementByAccessibilityId("加").click();

 


appium元素定位五:通過android uiautomator   定位

AndroidUIAutomator是一個強有力的元素定位方式,它是通過Android UIAutomator類庫去找元素,一個元素的任意屬性都可以通過 android uiautomator 方法來進行定位, 但要保證這種定位方式的唯一性。 

 

driver.findElementByAndroidUIAutomator("new UiSelector().text(\"+\")").click(); 

 

4、通過uiautomatorviewer實現appium元素定位

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.