zoukankan      html  css  js  c++  java
  • 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."); } } }
  • 相关阅读:
    C#中的控件命名规范
    c# 执行javascript 脚本 并获得变量值 (winform与javascript交互 )
    C# Socket 实现的淘宝秒杀器(抢拍器)
    ASP函数 获取域名解析后的IP 获取远程网页的HTML代码
    C# 使用17方法编写Hello World程序(语法深度)
    框架内数据的打印。。。。
    有点厌恶写程序.....
    漂流的自白
    Asp.net中的页面乱码的问题
    在js 中根据 url 获取其参数
  • 原文地址:https://www.cnblogs.com/rexmzk/p/2844665.html
Copyright © 2011-2022 走看看