hamibot 中文文档 下载 App

Hamibot 脚本开发常用模式与技巧

等待控件出现

自动化脚本最常见的模式:执行一个操作 → 等待某个界面变化。

findOne 自带等待

// 默认最多等 10 秒,找到才继续
text("确认").findOne();

// 自定义超时 5 秒
text("确认").findOne(5000);

findOnce 立即检查

// 不确定控件是否存在,立即检查
const btn = text("加载更多").findOnce();
if (btn) {
    btn.click();
} else {
    // 控件不存在,跳过
}

while 轮询

// 直到文本出现,每 500ms 检查一次
while (!text("到货了").findOnce()) {
    sleep(500);
}
text("到货了").findOne().click();

循环模式

固定次数循环

for (let i = 0; i < 10; i++) {
    text("刷新").findOne().click();
    sleep(2000);
}

条件循环

// 只要还有商品就继续
while (text("有货").findOnce()) {
    click(500, 800);
    sleep(1000);
}

异常处理

try-catch 包裹关键操作

try {
    text("开始").findOne(3000).click();
} catch (e) {
    log('没找到开始按钮,跳过本次');
}

全局异常监听

events.on('exit', () => {
    // 脚本退出时清理资源
    log('脚本已退出');
});

日志与调试

常用日志函数

函数效果
log("消息")控制台输出日志
toast("提示")屏幕弹出短 Toast
toastLog("提示")同时 Toast + 控制台日志
console.log("调试")标准输出

控制台远程调试

在控制台设备详情页可以看到实时日志输出,调试时非常方便。也可以用远程调试功能在电脑浏览器上查看设备当前界面和控件树。

常用全局对象

对象用途
auto无障碍服务相关
appAPP 启停、包信息
device设备信息(分辨率、电池等)
sleep(ms)等待指定毫秒数
hamibot.exit()主动退出脚本
hamibot.config读取脚本配置项

开发调试建议

  1. 先用 findOnce 不阻塞的方式,确认控件存在再换成 findOne 带等待
  2. 小步快跑:写一段跑一段,而不是一次写完再测
  3. 善用控制台日志:实时看输出比盲猜高效
  4. 远程调试看控件树:不确定选什么选择器时,远程调试能直接看到屏幕上的所有控件属性