uiautomator中UiSelector学习笔记(3)

本文详细介绍了UiSelector的各种属性和方法,包括如何使用text、description、selected等条件进行UI元素的筛选,以及如何通过cloneSelector、patternBuilder等方法构建复杂的匹配器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转:http://blog.youkuaiyun.com/itfootball/article/details/23917551

4.1版本


UiSelector为条件器,你在获得一个UiObject/UiCollection/UiScrollable对象时都要传入这样一个UiSelector对象进去。UiSelector对象里的方法就是添加各种条件。

 

text(String text)/textStartsWith(String text)/textContains(String text)

 

Text属性的值等于text字符串/以text字符串开始/包含text字符串


 description(String desc)/descriptionStartsWith(String desc)

/descriptionContains(String desc)


Content-desc的属性的值为desc/以desc开始/包含desc


selected(boolean val)/scrollable(boolean val)/checked(boolean val)/clickable(boolean val)/enabled(boolean val)/focusable(boolean val)/focused(boolean val)

 

设置selected/scrollable/checked/clickable/enabled/focusable/focusable/focused属性

 

index(int index)/instance(int instance)

/packageName(String name)/className(String className)

 

设置index/instance/packageName/className属性值


buildSelector(int selectorId,Object  selectorValue)

 

 返回的还是UiSelector对象,传入的参数都会放在UiSelector中的变量mSelectorAttributes中,该变量为一个SparseArray数组中。


childSelector(UiSelector selector)


设置SELECTOR_CHILD的值


patternSelector(UiSelector selector)


设置SELECTOR_PATTERN的值


containerSelector(UiSelector selector)


设置SELECTOR_CONTAINER的值


fromParent(UiSelector selector)


设置SELECTOR_PARENT的值


cloneSelector()


复制当前UiSelector,产生一个新的UiSelector。


patternBuilder(UiSelector selector)

/patternBuilder(UiSelector contain,UiSelector pattern)


暂时未知(用2个已知的匹配器构建出复杂的匹配器,得到的新匹配器要同时符合传进来的2个匹配器?)


getChildSelector()


在hashMap得到以SELECTOR_CHILD为key值的Selector对象


getPatternSelector()


在hashMap得到以SELECTOR_PATTERN为key值的Selector对象


getContainSelector()


在hashMap得到以SELECTOR_CONTAINER为key值的Selector对象

 

getParentSelector()


在hashMap得到以SELECTOR_PARENT为key值的Selector对象

 

 getInstance()


得到key=9个的值,整数值。找不到的话返回0


getString(int criterion)/getBoolean(int criterion)/getInt(int criterion)


得到key=criterion的值,找不到返回null/false/0


isMatchFor(AccessibilityNodeInfo info,int index)


判断info是否符合该匹配器所匹配的控件,index匹配SELECTOR_INDEX的值


matchOrUpdateInstance()


SELECTOR_INSTANCE和SELECTOR_COUNT是否相等,如果不相等就更新SELECTOR_COUNT的值


isLeaf()


方法名为叶子,看源码意思就是是否存在子节点和父节点。


hasChildSelector()/hasPatternSelector()

/hasParentSelector()/hasContainerSelector()


存放属性的SparseArray对象是否包含SELECTOR_CHILD/SELECTOR_PATTERN/SELECTOR_PARENT/SELECTOR_CONTAINER对象


getLastSubSelector()


获得SELECTOR_CHILD对象,如果没有则获得SELECTOR_PARENT对象。深度遍历直到不存在SELECTOR_CHILD或SELECTOR_PARENT.返回该对象


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值