4.UiCollection API 详细介绍

 2023-09-10 阅读 19 评论 0

摘要:一、UiCollection类介绍 UiCollection类两大功能:从集合中查找对象;获取某种搜索条件组件的数量1.UiCollection类说明 1)UiCollection是UiObject的子类,可以使用UiObject中的所有API 2)UiCollection代表元素条目组合 2.UiCollection功能说

一、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

childPatternUiSelector从子元素中的选择条件
text、instance从搜索出的元素中再次用 描述/文本/实例 条件搜索元素
返回值:UiObject
抛出异常:UiObjectNotFoundException

API设计、 

  • 例如:
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查找条件递归查找所有符合条件的子子孙孙集合的数量

uicollectionview? 

参数

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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/37878.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息