Android 自動化測試經驗分享 UiObejct.getFromParent()的使用方法

來源:互聯網
上載者:User

1. UiObejct.getFromParent()的用法:從這個名字就知道,就是從當前對象的父物件中尋找想要的子物件,該子物件和當前對象應該是同一層級。

如所示:Max inactivity before lock是已知條件,4 minutes是我想動態擷取的內容。那應該怎麼做呢?

先看看結構:TableLayout(curent index is 2) - TableRow(has several indexes) - TextView(has 2 indexes)。

1.先擷取TableLayout index為2的那個對象
2.遍曆TableLayout裡面的TableRow,擷取TableRow(i)裡頭的TextView(0)的text
3.當TextView(1)的text內容為“Max inactivity before lock”,則可以確定我們所要的那個TableRow了。(其實就是找對應的index)
4.然後我們就使用當前對象的getFromParent()方法去尋找TextView(1)的text,這樣就可以取到我們想要的值了。

複製代碼 代碼如下://下面2步是擷取TableLayout下面TableRow的數量
UiObject allPasswordPolicies = new UiObject(new UiSelector().className("android.widget.TableLayout").index(2));
int pwdcount = allPasswordPolicies.getChildCount();
//遍曆每一個TableRow
for(int i = 0; i < pwdcount; i++) {
UiObject passcodePolicyName = allPasswordPolicies.getChild(new UiSelector().className("android.widget.TableRow").index(i).childSelector(new UiSelector().className("android.widget.TextView").index(0)));

//尋找TableRow中index為0的TextView的值等於"Max inactivity before lock"的對象
if(passcodePolicyName.getText().contains("Max inactivity before lock")) {

//使用getFromParent()和getText()方法擷取當前對象同級的TextView,index為1的那個對象的text值。passcodePolicyName.getFromParent等同於TableRow(1)對象
String actualValue = passcodePolicyName.getFromParent(new UiSelector().className("android.widget.TextView").index(1)).getText();
if(actualValue.equals(expectedValue)) {
System.out.println(policyName + " check: Pass.");
} else {
System.out.println(policyName + " check: Failed.");
}
}
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.