说明
这个章节主要讲解选择器类使用和节点信息类


选择器对象
- 选择器对象是支持级联选择,可以在无法直接选择到元素的时候,先通过选择父级后再选择子级
- 选择器部分支撑正则匹配,请参考java的正则语法,教程
节点信息类
说明
节点对象NodeInfo,可以通过获取getNodeInfo方法获取到节点信息的数组,节点包含的信息如下
- id: 字符串,资源的ID
- clz: 字符串,视图类名,例如 android.widget.TextView
- pkg: 字符串,包名,例如com.xx
- desc: 字符串,内容描述
- text: 字符串,文本
- checkable: 布尔型,是否可选中
- checked: 布尔型,是否选中
- clickable: 布尔型,是否可点击
- enabled: 布尔型,是否启用
- focusable: 布尔型,是否可获取焦点
- focused: 布尔型,是否聚焦
- longClickable: 布尔型,是否可长点击
- scrollable: 布尔型,是否滚动
- selected: 布尔型,是否被选择
- childCount: 整型,子节点的个数
- index: 整型 节点的索引
- depth: 整型 节点的层级深度
- drawingOrder: 整型 节点的绘制顺序
- bounds: Rect型,空间对象
- top: 整型,顶部位置
- bottom: 整型,底部位置
- left: 整型,左边位置
- right: 整型,右边位置
- visibleBounds: Rect型,可视空间对象
- top: 整型,顶部位置
- bottom: 整型,底部位置
- left: 整型,左边位置
- right: 整型,右边位置
text属性选择
全文本匹配
function main(){ //获取选择器对象 var selector = text("设置"); click(selector); } main();
正则匹配
function main(){ //获取选择器对象 var selector = textMatch(".*设置.*"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
id 属性选择
全量匹配
function main(){ //获取选择器对象 var selector = id("com.xx:id/a1"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
正则匹配
function main(){ //获取选择器对象 var selector = idMatch(".*id8.*"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
clz 属性选择
全量匹配
function main(){ //获取选择器对象 var selector = clz("android.widget.TextView"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
正则匹配
function main(){ //获取选择器对象 var selector = clzMatch(".*TextView.*"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
pkg 属性选择
全量匹配
function main(){ //获取选择器对象 var selector = pkg("com.xx"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
正则匹配
function main(){ //获取选择器对象 var selector = pkgMatch(".*tencent.*"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
desc 文本属性选择
全量匹配
function main(){ //获取选择器对象 var selector = desc("我是描述"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
正则匹配
function main(){ //获取选择器对象 var selector = descMatch(".*描述.*"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main()
深度和绘制顺序匹配
drawingOrder
function main(){ //获取选择器对象 var selector = drawingOrder(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
depth
function main(){ //获取选择器对象 var selector = depth(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
其他匹配规则
visible 可视化属性匹配
- 按照属性 visible 进行匹配
- @param value 字符串
- @return {S} 节点选择器
function main(){ var node = visible(true).getOneNodeInfo(1000); logd("node "+node); } main();
bounds 范围匹配
- 按照属性 bounds 进行范围 *
- @param left 范围左边数值
- @param top 范围上边数值
- @param right 范围右边数值
- @param bottom 范围底边数值
- @return {S} 节点选择器
function main(){ //获取选择器对象 0 - 800以内范围内的控件 var selector = bounds(0,0,800,800); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
checkable
function main(){ //获取选择器对象 var selector = checkable(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
checked
function main(){ //获取选择器对象 var selector = checked(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
clickable
function main(){ //获取选择器对象 var selector = clickable(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
longClickable
function main(){ //获取选择器对象 var selector = longClickable(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
scrollable
function main(){ //获取选择器对象 var selector = scrollable(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
focusable
function main(){ //获取选择器对象 var selector = focusable(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
enabled
function main(){ //获取选择器对象 var selector = enabled(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();
focused
function main(){ //获取选择器对象 var selector = focused(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main();