一、UiCollection类介绍

  • UiCollection类两大功能:从集合中查找对象;获取某种搜索条件组件的数量
1.UiCollection类说明

1)UiCollection是UiObject的子类,可以使用UiObject中的所有API
2)UiCollection代表元素条目组合

2.UiCollection功能说明

1)先按照一定的条件枚举出容器类界面所有符合条件的子元素
2)符合条件的元素中再次通过一定的条件最终定位需要的组件

3.UiCollection使用场景

1)一般使用容器类组件作为父类
2)一般使用在需要找子类且子类由于某些因素不好定位的情况
3)获取某一类的数量,如获取联系人列表下当前视图下联系人的数量

二、从集合中查找对象

1.相关API说明
public UiObject getChildByDescription(UiSelector childPattern,String text)

public UiObject getChildByText(UiSelector childPattern,String text)

public UiObject getChildByInstance(UiSelector childPattern,int instance)

在UiSelector选择器的查找里条件从子ui元素中搜索,递归寻找早所有符合条件的子集。

再次用 描述/文本/实例 条件从前面搜索子集定位到想要的元素
2.参数:

Tables

Are

childPattern UiSelector从子元素中的选择条件
text、instance 从搜索出的元素中再次用 描述/文本/实例 条件搜索元素
返回值: UiObject
抛出异常: UiObjectNotFoundException
  • 例如:
public void testDemo1() throws UiObjectNotFoundException{

    //getChildByText()[界面停留在文件管理器界面]
//1.通过类名获取所有组件的集合
UiCollection collection=new UiCollection(new UiSelector().className("android.widget.ListView"));
//2.通过类名对步骤1中的集合进行删选
UiSelector childPattern=new UiSelector().className("android.widget.TextView");
//3.通过text最终选中music文件
String text="Music";
UiObject music=collection.getChildByText(childPattern, text);
//4.点击music按钮
music.click(); //getChildByDescription()[界面停留在拨号界面]
//1.通过resourceId找出所有的组件集合
UiCollection collection1=new UiCollection(new UiSelector().resourceId("com.android.dialer:id/dialpad"));
//2.通过类名筛选步骤1集合中的组件
UiSelector childPattern=new UiSelector().className("android.widget.ImageButton");
//3.通过text最终定位到要选的组件
String text="四";
UiObject forth=collection1.getChildByDescription(childPattern, text);
//4.点击
forth.click(); //getChildByInstance()[界面停留在拨号界面]
//1.通过resourceId找出所有的组件集合
UiCollection collection1=new UiCollection(new UiSelector().resourceId("com.android.dialer:id/dialpad"));
//2.通过类名筛选步骤1集合中的组件
UiSelector childPattern=new UiSelector().className("android.widget.ImageButton");
//3.通过instance最终定位需要使用的组件(以10086为例子)
UiObject child1=collection1.getChildByInstance(childPattern, 0);
UiObject child0=collection1.getChildByInstance(childPattern, 10);
UiObject child01=collection1.getChildByInstance(childPattern, 10);
UiObject child8=collection1.getChildByInstance(childPattern, 7);
UiObject child6=collection1.getChildByInstance(childPattern, 5);
//4.点击
child1.click();
child0.click();
child01.click();
child8.click();
child6.click();
}

三、获取某种搜索条件组件的数量

1.相关API说明
public int getChildCount(UiSelector childPattern)
按照UiSelector查找条件递归查找所有符合条件的子子孙孙集合的数量

参数

childPattern

选择条件

返回值 int 符合条件的子子孙孙集合数量
  • 例如:
public void testDemo2() throws UiObjectNotFoundException{

        //例一:int getChildCount()[界面停留在拨号界面]
//1.搜索UiAutomatorView界面上最顶端的那个组件(界面上第一个index为0的就是)
UiCollection collection=new UiCollection(new UiSelector().index(0));
//2.假设要找所有ImageButtom数量
int count=collection.getChildCount(new UiSelector().className("android.widget.ImageButton"));
//3.将结果输出
System.out.println("ImageButton conut is : "+count); //例二:如果tebleCollection.getChildCount()括号内不添加参数只找他的直接子类个数
//1.搜索类名为android.widget.TableRow的组件集合
UiCollection tebleCollection=new UiCollection(new UiSelector().className("android.widget.TableRow"));
//2.返回直接子类个数(直接子类是指当前子类下面的组件不返回)
int tebleChildCount=tebleCollection.getChildCount();
//3.输出直接子类个数
System.out.println("Android.widget.TableRow : "+tebleChildCount);
}

4.UiCollection API 详细介绍的更多相关文章

  1. 5.UiScrollable API 详细介绍

    Tip: 1.扫动过程中如果界面停留在滚动条的中间部分会先回到起点再进行滚动 2.扫动过程中设置的步长长短决定划过内容的多少,步长越长滑过的内容就越少:步长越短划过的内容就越长 一.UiScrolla ...

  2. 腾讯微博java(android)sdk新增微博api详细介绍

    本文主要介绍腾讯微博android sdk中新增微博有关的8个接口,以及使用的示例代码 注意:以下所有的api示例代码都需要先新建QqTSdkService类对象qqTSdkService并初始化,见 ...

  3. 7.Configurator API 详细介绍

    一.Configurator类介绍与API解释 1.Configurator类介绍 1)用于设置脚本动过的默认延时 2)功能 a.可调节两个模拟动作间的默认时间间隔 b.可调节输入文本的输入时间间隔 ...

  4. 6.UiWatcher API 详细介绍

    Tip: 1.监听器不是完能的,所以若用例需要设置监听器防止用例被打断,最好把延迟时间调高一点 2.UiDevice是不会触发监听功能的 3.监听器在方法体或者循环体中是程序还是会被打断的 4.监听器 ...

  5. 2.UiSelector API 详细介绍

    一.UiSelector类介绍 //通过各种属性与节点关系定位组件 简单实例: public void testDemo2() throws UiObjectNotFoundException{ Ui ...

  6. 1.UiDevice API 详细介绍

    1.UiDevice按键与keycode使用 返回值 方法名 说明 boolean pressBack() 模拟短按返回back键 boolean pressDPadCenter() 模拟按轨迹球中点 ...

  7. 3.UiObejct API 详细介绍

    一.点击与长按 1.组件区域位置关系: Rect 对象代表一个矩形区域:[left,Top][ARight,Bottom](即左上角图标到右下角图标) 2.点击与长按相关API: 返回值 API 说明 ...

  8. 百度地图API详细介绍

    <!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <t ...

  9. HTML5全屏(Fullscreen)API详细介绍

    // 整个页面 onclick=   launchFullScreen(document.documentElement); // 某个元素 launchFullScreen(document.get ...

随机推荐

  1. Linux内核学习笔记(3)-- 进程的创建和终结

    一. 进程创建: Unix 下的进程创建很特别,与许多其他操作系统不同,它分两步操作来创建和执行进程: fork() 和 exec() .首先,fork() 通过拷贝当前进程创建一个子进程:然后,ex ...

  2. Linux内核学习笔记(2)-- 父进程和子进程及它们的访问方法

    Linux系统中,进程之间有一个明显的继承关系,所有进程都是 PID 为1的 init 进程的后代.内核在系统启动的最后阶段启动 init 进程.该进程读取系统的初始化脚本(initscript)并执 ...

  3. PytorchZerotoAll学习笔记(四)--线性回归

    线性回归 # 导入 torch.torch.autograd的Variable模块import torch from torch.autograd import Variable # 生成需要回归需要 ...

  4. 带你玩转JavaScript中的隐式强制类型转换

    正题开始前我想先抛出一个问题,==和===有什么区别?可能一般人会想,不就是后者除了比较值相等之外还会比较类型是否相等嘛,有什么好问的,谁不知道?!但是这样说还不够准确,两者的真正区别其实是==在比较 ...

  5. 过山车 HDU 2063 (二分图匹配裸题)

    Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生 ...

  6. Beta阶段第二次网络会议

    Beta阶段第二次网络会议 第一次会议问题解决情况 画面问题已经解决,游戏提示信息已加入完成 不同情况下背景已加入完成,但细节部分仍需要进行调整 科技树添加完成,权限修改完成,还存在部分细节调整 AI ...

  7. 团队开发NABCD

    团队成员介绍: 李青:绝对的技术控,团队中扮演“猪”的角色,勤干肯干,是整个团队的主心骨,课上紧跟老师的步伐,下课谨遵老师的指令,课堂效率高,他的编程格言“没有编不出来的程序,只有解决不了的bug”. ...

  8. 跨域写cookie

    假设a站想往b站写cookie,那么目前有两种方案,参考如下: 第一种(使用jsonp): a站js代码如下: $.ajax({ url: 'http://www.b.com/jsonp.jsp?do ...

  9. Swift-setValuesForKeysWithDictionary

    重写 setValuesForKeysWithDictionary 那么字典中可以有的字段在类中没有对应属性 class Person : NSObject { var age :Int = // 重 ...

  10. 【Linux 命令】- more和less

    more命令 more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b ...