栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android 自动化测试经验分享 UiObejct.getFromParent()的使用方法

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 自动化测试经验分享 UiObejct.getFromParent()的使用方法

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.");
        }
    }
 }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/165416.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号