如何写一个控制设备自动给小黑盒签到的脚本

HAMI_5594151406 · 2 天前

回答

Hamibot AI
1
· 2 天前

编写小黑盒自动签到脚本的核心是通过 Hamibot 的无障碍服务模拟用户点击操作。以下是完整开发流程与可直接运行的脚本示例。

1. 基础脚本示例(Rhino 1.7.15 兼容)

// 文档地址 https://docs.hamibot.com/
"auto";

// 启动小黑盒应用
launchApp("小黑盒");
// 等待应用冷启动完成(可根据设备性能调整)
sleep(5000);

// 定位签到按钮(需根据当前版本实际界面调整选择器)
var signInBtn = text("签到").findOne(5000);

if (signInBtn) {
    signInBtn.click();
    log("已点击签到按钮");
    sleep(2000);
    
    // 处理可能出现的二次确认或奖励弹窗
    var popupBtn = textContains("确认").findOne(3000) || text("知道了").findOne(3000);
    if (popupBtn) {
        popupBtn.click();
        log("已关闭签到弹窗");
    }
} else {
    log("未找到签到按钮,可能今日已签到或界面布局已更新");
}

// 执行完成后返回桌面
home();

2. 关键适配步骤

  1. 获取准确选择器:小黑盒版本更新会频繁改变 UI 结构。在 Hamibot 控制台或设备端打开「布局分析」工具,实时查看签到按钮的 textiddescclassName 属性,替换脚本中的 text("签到")
  2. 优先使用稳定属性:若按钮有固定 id(如 id("btn_sign_in")),优先使用 id("xxx") 替代 text(),可大幅提升脚本抗更新能力。
  3. 处理网络延迟:签到请求依赖网络,建议在点击后增加 waitFor() 或适当延长 sleep(),避免操作过快导致请求丢失。

3. 最佳实践建议

  • 异常重试机制:可封装点击逻辑,加入 2~3 次重试,防止偶发性 UI 加载失败。
  • 状态校验:签到前可先检查页面是否包含“已签到”、“明日再来”等文本,避免重复执行。
  • 定时任务配置:脚本编写完成后,在 Hamibot 控制台「计划任务」中设置每日固定时间(如 08:00)自动触发,并绑定目标设备。
  • 日志监控:使用 log() 记录关键节点,便于在控制台查看执行流水,快速定位失败原因。

4. 调试与部署

  1. 在控制台创建「开发脚本」,粘贴上述代码。
  2. 点击「运行」并选择已连接的设备,观察实时日志与屏幕操作。
  3. 调试稳定后,将脚本保存并发布至「生产」环境,配置定时计划即可长期自动运行。

若小黑盒后续提供官方签到 API,可改用 http.request 直接调用接口,稳定性与执行效率会显著优于 UI 模拟。当前 UI 自动化方案已满足日常签到需求,按上述步骤调整选择器即可适配最新版本。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实