一、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);}

转载于:https://www.cnblogs.com/JianXu/p/5224891.html

4.UiCollection API 详细介绍相关推荐

  1. 5.UiScrollable API 详细介绍

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

  2. 2.UiSelector API 详细介绍

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

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

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

  4. 腾讯微博android sdk,腾讯微博java(android)sdk时间线api详细介绍

    本文主要介绍腾讯微博android sdk中时间线有关的20个接口,以及正常获取及翻页的使用的示例代码及部分特例 注意:以下所有的api示例代码都需要先新建QqTSdkService类对象qqTSdk ...

  5. html游戏全屏代码,HTML5全屏(Fullscreen)API详细介绍

    在越来越真实的web应用程序中,JavaScript也变得越来越给力. FullScreen API 是一个新的JavaScript API,简单而又强大. FullScreen 让我们可以通过编程的 ...

  6. html谷歌全屏像素,HTML5全屏(Fullscreen)API详细介绍

    在越来越真实的web应用程序中,JavaScript也变得越来越给力. FullScreen API 是一个新的JavaScript API,简单而又强大. FullScreen 让我们可以通过编程的 ...

  7. html5 自动设置全屏,HTML5全屏(Fullscreen)API详细介绍

    在越来越真实的web应用程序中,JavaScript也变得越来越给力. FullScreen API 是一个新的JavaScript API,简单而又强大. FullScreen 让我们可以通过编程的 ...

  8. 机器学习算法——详细介绍 集成学习,以及什么是Bagging、随机森林、Boosting、XGBoost

    目录 一.集成学习算法简介 1.什么是集成学习 2.机器学习的两个核心任务 3.集成学习中boosting和Bagging 4.小结 二.Bagging和随机森林 1.Bagging集成原理 2.随机 ...

  9. arcgis api 4.13 —— Layer详细介绍

    arcgis api 4.13 Layer详细介绍 近日,esri官方更新了arcgis api4.12版本,接下来我将就此API做一个大概的梳理.本篇文章是关于图层(layer)的一个大概.主要分为 ...

最新文章

  1. Linux下运行第一个Java程序成功(Linux下JDK安装和环境变量配置等)
  2. mysql的innodb表生成的物理文件_MySQL innodb表使用表空间物理文件复制或迁移表
  3. java.util.scanner sc_关于Java的Scanner的问题,菜鸟求各大神解答
  4. [react] React怎么判断什么时候重新渲染组件呢
  5. java byte short_java.lang.Short.byteValue()方法实例
  6. 巧用Android网络通信技术,在网络上直接传输对象
  7. stl非变易算法(一)
  8. appium python api
  9. 金融科技在互联网金融行业性风险防范领域的应用
  10. 数据库索引选择的探索(二)之直方图
  11. springcloud微服务学习笔记(四十五):Gateway9527搭建
  12. Redis主从复制原理
  13. 奥维地图看历史影像_如何在奥维中使用中国资源卫星影像图 | 奥维互动地图浏览器...
  14. GridView绑定
  15. 【社区图书馆】vue的生命周期
  16. 追思清明 浸润童心-----宁都县幼儿园清明祭英烈主题活动
  17. 探秘 VMware Tanzu Kubernetes 发行版
  18. h5前端开发,css图片轮播图带小圆点
  19. IDA反汇编/反编译静态分析iOS模拟器程序(一)话说IDA
  20. ssm 一对多的映射关系

热门文章

  1. 【资源】《可解释的机器学习》,让机器学习不再神秘!
  2. 大数据分析实战-信用卡欺诈检测(四)-正则化惩罚
  3. TensorFlow会话的配置项
  4. 深度学习(三十九)LSTM、GRU网络入门学习-未完待续
  5. 自动驾驶车辆转向控制(通过支持转角控制的EPS实现角速度控制)
  6. c语言 炸弹文件,炸弹超人游戏c语言简板
  7. git lib 创建新的项目在某个路径下_版本控制管理工具git的使用
  8. python itemgetter函数用法_Python中的sorted函数以及operator.itemgetter函数
  9. python pillow无法安装_Pillow
  10. gephi 使用mysql数据,gephi练习数据