1. 程式人生 > >uiautomator中相同控制元件名該如何獲取想要的控制元件,instance(0)區分佈局一樣的控制元件

uiautomator中相同控制元件名該如何獲取想要的控制元件,instance(0)區分佈局一樣的控制元件

大家在使用uiautomator測試開發中肯定遇到一樣佈局、連控制元件ID都一樣的情況,我們該如何去獲取?

舉例:

以下如圖的所有介面開關(圖片可能載入不出來,大家請自行想象下),所有控制元件顯示名稱都是一樣的,就index有區別,假如我們要開關NFC開關,我們肉眼可以去判斷,但是程式碼如何去做呢?


我們看到index的數值都是有順序的,也就是所有這些開關都是有順序區分的,如:NFC開關在第三個。

知道這些我們就可以用一個函式:instance(0)和index(0),這裡面的0表示是第一個排在前面的控制元件,一般我們獲取控制元件UiObject不寫instance是預設第一個(相當於寫了instance(0)),而我們的NFC開關在第三個,那麼使用的instance(2),這就是要獲取我們NFC的控制元件,

獲取NFC的控制元件程式碼如下:

UiObject clickOnAndOff = new UiObject(new UiSelector().resourceId("android:id/witchWidget").instance(2));

後面跟上instance(2)就是要獲取的控制元件,大家明白了嗎?

ps:別問我index(0)幹嘛的,使用方法差不多,因為我幾乎不用,大家感興趣可以百度;

---------------------------------完,不明白的給我留言·······················

文章作者:享有盛譽之名

轉載請備註!