布局分析器与 UiSelector 入门——看懂屏幕上的控件树
控件是什么
安卓 APP 的界面由一个个 View(控件)组成:按钮是 Button,文本是 TextView,图片是 ImageView,滚动区域是 ScrollView……Auto.js 通过无障碍服务可以读取这整棵控件树。
打开布局分析器
三种方式:
- 悬浮窗 → 「布局分析」(最常用,不需要切回 Auto.js)
- 侧拉菜单 → 「布局分析」
- 代码调用:
auto.layoutInspector()
打开后,Auto.js 会把当前屏幕上的控件高亮显示,左上角弹出一个窗口列出控件树结构。

看懂控件树
每个控件节点显示:
- className:控件类型(android.widget.TextView、Button、FrameLayout 等)
- text:控件上显示的文字(如果有)
- id:资源 ID(如 com.taobao.taobao:id/rl_search)
- description:无障碍描述(部分 APP 用来给控件加说明)
- bounds:控件在屏幕上的矩形区域
点击某个控件后会跳到它的属性详情页,可以复制属性值用于选择器。
三种选择器速查
// 按文本
text("立即购买").click(); // 精确匹配
textContains("购买").click(); // 包含匹配
textStartsWith("立").click(); // 开头匹配
textEndsWith("买").click(); // 结尾匹配
textMatches("立.{0,2}购买").click(); // 正则匹配
// 按 ID
id("btn_submit").click();
id("com.taobao.taobao:id/rl_search").click();
// 按类名
className("android.widget.Button").click();
选择器返回什么
选择器(如 text("签到"))返回一个 UiSelector 对象,本身不会做任何操作。调用 .findOne() 或 .find() 才会真正去匹配:
var btn = text("签到").findOne(); // 找到第一个匹配的控件
btn.click(); // 操作这个控件
// 等价的链式写法
text("签到").findOne().click();
// 等待后查找
text("签到").waitFor(5000).click(); // 等 5 秒内出现
继续阅读:文本选择器