Autox.js 中文文档 下载 App

Autox.js 控制台 console.show 调试输出和交互输入

写脚本不看输出,等于瞎猜

初学者最常犯的错误:脚本跑完了没达到预期,直接认为 API 不好用。其实大概率是脚本中间某一步出错了,你只是没看到报错信息。

Autox.js 的 console 控制台就是解决这个问题的。

打开控制台

console.show();

执行这行后,屏幕上会出现一个悬浮窗控制台,可以:

三种日志级别

console.log("普通日志");      // 白色,用于正常输出
console.warn("警告信息");     // 黄色,用于潜在问题
console.error("错误信息");    // 红色,用于真正的错误

实际使用场景:

console.show();

console.log("脚本开始运行");

let result = text("确定").findOne(5000);
if (!result) {
    console.warn("5 秒内没找到确定按钮");
}

try {
    result.click();
    console.log("点击成功");
} catch (e) {
    console.error("点击失败:" + e.message);
}

rawInput:让用户输入

console.rawInput() 会暂停脚本等待用户输入,把输入的字符串返回:

console.show();
let name = console.rawInput("请输入你的名字:");
toast("你好," + name);

这在写可配置的脚本时特别有用——比如脚本开头问一下要操作多少次、延迟多久。

交互对话框:dialogs

比 console.rawInput 更丰富的交互方式是 dialogs 模块:

// 确认对话框
if (dialogs.confirm("确定要执行这个操作吗?")) {
    toast("好的,开始干活");
}

// 带输入框的对话框
let input = dialogs.input("请输入数字", "10");
console.log("你输入了:" + input);

// 单选对话框
let choice = dialogs.select("选择操作", ["自动运行", "手动运行", "停止"]);
console.log("你选了第" + choice + "项");

调试技巧

1. 在关键节点插 console.log

不要只在脚本开头和结尾加 log,每个关键步骤前后都加:

console.log("[1] 启动 App");
launchApp("com.example.app");

console.log("[2] 等待首页加载");
if (!text("首页").findOne(10000)) {
    console.error("首页加载超时");
    exit();
}

console.log("[3] 点击登录按钮");
let btn = text("登录").findOne();
console.log("找到按钮:" + btn);  // 输出对象本身,看看是不是 null
btn.click();

2. 用 exit() 提前终止

不想让脚本继续跑下去(比如调试到一半),直接调 exit():

if (!someCondition) {
    console.error("条件不满足,终止");
    exit();
}

3. 打印当前界面的控件树

当你不知道屏幕上到底有什么控件时,可以遍历整个控件树看看:

auto.rootFolder = "/sdcard/脚本/";  // 确保有根目录

// 打印当前页面所有 text 不为空的控件
auto.getWindowRoot().find().forEach(c => {
    let t = c.text();
    if (t) console.log("控件:" + t + " | class:" + c.className());
});

这招在"布局分析器找不到,但我觉得应该有东西"的时候特别好用。

不要忘了关掉 console.show

控制台悬浮窗会一直挡在屏幕上,影响操作。调试完记得删掉 console.show(),或者用条件控制:

let DEBUG = true;  // 上线改成 false

if (DEBUG) console.show();
// ...脚本主体

总结

工具用途
console.log/warn/error输出调试信息
console.show()打开悬浮控制台
console.rawInput()让用户输入
dialogs.confirm/input/select更丰富的交互
exit()终止脚本

一句话记:写脚本必开 console.show,调试时不要只靠感觉猜。