UiAutomator笔记之UiSelector API(三)

本文详细介绍了Android自动化测试中的UiSelector API,包括文本、描述、类名、包名、索引与实例等属性的选择方法,以及特殊属性和资源ID的使用。通过实例代码展示了如何有效地定位和操作界面上的组件。

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

一、UiSelector相关知识


1、UiSelector功能
UiSelector可通过控件的各种属性与节点关系定位组件。

2、Android常用组件
TextView 文本框
EditView 编辑框
Button 按钮
RadioButton 单选按钮
CheckBox 复选框
ToggleButton 状态开关按钮
Switch 开关
SeekBar 拖动条
AnalogClock DigitalClock 时钟
Chronometer 计时器
ListView 列表视图
GridView 网格视图
ProgressBar 进度条
RatingBra 星际评分条
Toast 提示信息框
ScrollView 滚动视图

3、Android组件的属性
属性值 值类型 说明
index int 索引:同级组件的下标;从0开始计
instance int 界面中同一类View的所有实例的下标;从0开始计
class String 组件的类名,如 android.widget.TextView
package String 包名
Content-desc String 描述
checkable boolean 是否可选,一般只对 单选或 复选框有用。
checked boolean 单选或 复选框 是否被选中
clickable boolean 是否可点击
enabled boolean 是否可操作,如 按钮置灰不可操作状态
focusable boolean 是否可获取焦点
focused boolean 是否获取到焦点
Scrollable boolean 是否可滚动,一般是list
Long-clickable boolean 是否可长按
password boolean 是否密码
selected boolean 是否具有背景选择属性,如按钮点击后背景色变化
bounds Rect 坐标,如 [366,999][708,1197]表示控件的矩形区域左上和右下坐标点


4、查找组件的匹配方式(4种)
(1)默认:完全匹配
(2)Contains:包含匹配
(3)StartsWith:起始匹配
(4)Matches:正则匹配(完全匹配、包含匹配、起始匹配)

5、XML文档节点关系
(1)父 Patent:父控件
(2)子 Children:子控件
(3)同胞 Sibling:同级控件
(4)先辈 Ancestor:父控件的上一级、上上级...
(5)后代 Descendant:子控件的下一级、下下级...

二、依据属性查找组件

1、 属性-文本

(1)相关API

返回值 API 说明
UiSelector text(String text) 文本
UiSelector textContains(String text) 文本包含
UiSelector textMatches(String regex) 文本正则
UiSelector textStartsWith(String text) 文本起始匹配


(2)示例
UiSelector uiSelector = new UiSelector().text("微信红包");//查找文本为“微信红包”的所有组件

2、 属性-描述

(1)相关API

返回值 API 说明
UiSelector description(String desc) 描述
UiSelector descriptionContains(String desc) 描述包含
UiSelector descriptionMatches(String regex) 描述正则
UiSelector descriptionStartsWith(String desc) 描述开始字符匹配


3、属性-类名

(1)相关API

返回值 API 说明
UiSelector className(String className) 类名
UiSelector classNameMatches(String regex) 正则类名


(2)输入参数className的快速书写方式

<1>class.getName方式
<2>完整类名方式:android.widget.LinearLayout
<3>正则方式
<4>常量方式

4、 属性-包名

(1)相关API

返回值 API 说明
UiSelector packageName(String name) 包名
UiSelector packageNameMatches(String regex) 包名正则

5、属性-索引与实例

(1)相关API

返回值 API 说明
UiSelector index(int index) 索引
UiSelector instance(int instance) 实例


(2)示例

UiSelector uiSelector = new UiSelector().className("android.widget.ImagView").index(1);//查找ImageView在同级中下标为1的组件

UiSelector uiSelector = new UiSelector().text("微信红包").instance(2);//查找界面中文本为“微信红包”的第3个组件


6、特殊属性

(1)相关API

返回值 API 说明
UiSelector checked(boolean val) 选择属性
UiSelector clickable(boolean val) 可点击属性
UiSelector enabled(boolean val) 可操作属性
UiSelector focusable(boolean val) 焦点属性
UiSelector focused(boolean val) 当前焦点属性
UiSelector longClickable(boolean val) 长按属性
UiSelector scrollable(boolean val) 滚动属性
UiSelector selected(boolean val) 背景选择属性

7、节点

(1)相关API

返回值 API 说明
UiSelector childSelector(UiSelector selector) 从当前组件往下查找其子子孙孙中符合条件的所有组件
UiSelector fromParent(UiSelector selector) 从当前组件往上查找其长辈中符合条件的所有组件

8、 属性-资源ID

(1)相关API

返回值 API 说明
UiSelector resourceId(String id) 资源ID
UiSelector resourceIdMatches(String regex) 资源ID正则


(2)说明

android4.3及以上系统才可通过资源ID的方式定位控件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值