1. UiObejct.getFromParent()的用法:從這個名字就知道,就是從當(dāng)前對象的父對象中查找想要的子對象,該子對象和當(dāng)前對象應(yīng)該是同一層級。
如上圖所示:Max inactivity before lock是已知條件,4 minutes是我想動態(tài)獲取的內(nèi)容。那應(yīng)該怎么做呢?
先看看結(jié)構(gòu):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.當(dāng)TextView(1)的text內(nèi)容為“Max inactivity before lock”,則可以確定我們所要的那個TableRow了。(其實就是找對應(yīng)的index)
4.然后我們就使用當(dāng)前對象的getFromParent()方法去查找TextView(1)的text,這樣就可以取到我們想要的值了。
//查找TableRow中index為0的TextView的值等于"Max inactivity before lock"的對象
if(passcodePolicyName.getText().contains("Max inactivity before lock")) {
//使用getFromParent()和getText()方法獲取當(dāng)前對象同級的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.");
}
}
}
新聞熱點
疑難解答
圖片精選