auto.js 中文文档 下载 App

布局分析器与 UiSelector 入门——看懂屏幕上的控件树

控件是什么

安卓 APP 的界面由一个个 View(控件)组成:按钮是 Button,文本是 TextView,图片是 ImageView,滚动区域是 ScrollView……Auto.js 通过无障碍服务可以读取这整棵控件树。

打开布局分析器

三种方式:

  1. 悬浮窗 → 「布局分析」(最常用,不需要切回 Auto.js)
  2. 侧拉菜单 → 「布局分析」
  3. 代码调用:auto.layoutInspector()

打开后,Auto.js 会把当前屏幕上的控件高亮显示,左上角弹出一个窗口列出控件树结构。

Auto.js 布局分析
布局分析界面

看懂控件树

每个控件节点显示:

点击某个控件后会跳到它的属性详情页,可以复制属性值用于选择器。

三种选择器速查

// 按文本
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 秒内出现

继续阅读:文本选择器