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,调试时不要只靠感觉猜。