时间:2021-05-21
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.");
}
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android的自动化测试有很多框架,其中uiautomator是google官方提供的黑盒UI相关的自动化测试工具,(GitHub主页:case使用java写
一、自动化测试的概念性能系统负载能力稳定性过载操作下的系统瓶颈自动化测试,使用程序代替人工,可以提高测试效率性,自动化测试能自动化使用代码模拟大量用户,让用户请
前言:最近开始研究Android自动化测试方法,对其中的一些工具、方法和框架做了一些简单的整理,其中包括android测试框架、CTS、Monkey、Monke
谈到自动化测试,一般就会提到测试工具。许多人觉得使用了一、两个测试工具就是实现了测试自动化,这种理解是不对的,至少是片面的。的确,测试工具的使用是自动化测试的一
Appium是移动端的自动化测试工具,类似于前面所说的Selenium,利用它可以驱动Android、iOS等设备完成自动化测试,比如模拟点击、滑动、输入等操作