选择器

# 选择器对象 选择器对象是支持级联选择,可以在无法直接选择到元素的时候,先通过选择父级后再选择子级 选择器部分支撑正则匹配,请参考java的正则语法 # text 属性选择 ## text(content) 全文本匹配 ```js function main(){ //获取选择器对象 var selector = text("设置"); click(selector); } main(); ``` ## textMatch(content) 正则匹配 ```js function main(){ //获取选择器对象 var selector = textMatch(".*设置.*"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` # desc 文本属性选择 ## desc(content) 全量匹配 ```js function main(){ //获取选择器对象 var selector = desc("我是描述"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## descMatch(content) 正则匹配 ```js function main(){ //获取选择器对象 var selector = descMatch(".*描述.*"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main() ``` # id 属性选择 ## id(content) 全量匹配 ```js function main(){ //获取选择器对象 var selector = id("com.xx:id/a1"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## idMatch(content) 正则匹配 ```js function main(){ //获取选择器对象 var selector = idMatch(".*id8.*"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` # className 属性选择 ## clz(content) 全量匹配 ```js function main(){ //获取选择器对象 var selector = clz("android.widget.TextView"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## clzMatch(content) 正则匹配 ```js function main(){ //获取选择器对象 var selector = clzMatch(".*TextView.*"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` # packageName 属性选择 ## pkg(content) 全量匹配 ```js function main(){ //获取选择器对象 var selector = pkg("com.xx"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## pkgMatch(content) 正则匹配 ```js function main(){ //获取选择器对象 var selector = pkgMatch(".*tencent.*"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` # 深度和绘制顺序匹配 ## depth(index) ```js function main(){ //获取选择器对象 var selector = depth(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## drawingOrder(index) index从1开始 ```js function main(){ //获取选择器对象 var selector = drawingOrder(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` #### 点击TAB ```js let selector = clz('androidx.appcompat.app.ActionBar$Tab').drawingOrder(1).clickable(true); logd(click(selector)); ``` # 其他匹配规则 ## visible(true) 按照可视化属性 visible 进行匹配 @param boolean 是否可视 @return {S} 节点选择器 ```js function main(){ var node = visible(true).getOneNodeInfo(1000); logd("node "+node); } main(); ``` ## clickable(true) ```js function main(){ //获取选择器对象 var selector = clickable(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## checkable(true) ```js function main(){ //获取选择器对象 var selector = checkable(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## editable(true) 是否可输入内容 ## checked(true) ```js function main(){ //获取选择器对象 var selector = checked(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## longClickable(true) ```js function main(){ //获取选择器对象 var selector = longClickable(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## selected(true) ```js function main(){ //获取选择器对象 var selector = selected(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## scrollable(true) ```js function main(){ //获取选择器对象 var selector = scrollable(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## focusable(true) ```js function main(){ //获取选择器对象 var selector = focusable(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## enabled(true) ```js function main(){ //获取选择器对象 var selector = enabled(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## focused(true) ```js function main(){ //获取选择器对象 var selector = focused(true); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## index(num) 节点索引,num从0开始 ```js function main(){ //获取选择器对象 var selector = index(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## bounds(left,top,right,bottom) 按照属性 bounds 进行范围 @param left 范围左边数值 @param top 范围上边数值 @param right 范围右边数值 @param bottom 范围底边数值 @return {S} 节点选择器 ```js function main(){ //获取选择器对象 0 - 800以内范围内的控件 var selector = bounds(0,0,800,800); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## childCount(index) ```js function main(){ //获取选择器对象 var selector = childCount(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## row(index) ```js function main(){ //获取选择器对象 var selector = row(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## column(index) ```js function main(){ //获取选择器对象 var selector = column(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## rowSpan(index) ```js function main(){ //获取选择器对象 var selector = rowSpan(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## columnSpan(index) ```js function main(){ //获取选择器对象 var selector = columnSpan(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## rowCount(index) ```js function main(){ //获取选择器对象 var selector = rowCount(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## columnCount(index) ```js function main(){ //获取选择器对象 var selector = columnCount(1); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## 级联匹配 ```js function main(){ //获取选择器对象 //选择 父级为android.widget.ScrollView下的子节点clz=android.widget.CheckBox所有节点 var selector = clz("android.widget.ScrollView") .child() .clz("android.widget.CheckBox"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ``` ## 多属性匹配 ```js function main(){ //获取选择器对象, //选择包含"选择器"并且checked=true并且类名=android.widget.CheckBox的元素 var selector = text(".*选择器.*") .checked(true) .clz("android.widget.CheckBox"); var result = click(selector); if (result) { toast("点击成功"); } else { toast("点击失败"); } } main(); ```