回答
以下是为你编写的 Hamibot 自动化脚本,已针对 Rhino 1.7.15 引擎进行兼容处理,并采用防阻塞的控件查找策略。
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
// 1. 启动吉利汽车App
launchApp("吉利汽车");
sleep(3000);
// 2. 点击右下角“我的”
var myBtn = text("我的").findOne(5000);
if (myBtn) {
myBtn.click();
sleep(2000);
} else {
log("未找到'我的'按钮,请检查App是否已启动或页面是否加载完成");
exit();
}
// 3. 点击“吉分”
var jiFenBtn = text("吉分").findOne(5000);
if (jiFenBtn) {
jiFenBtn.click();
sleep(2000);
} else {
log("未找到'吉分'入口");
exit();
}
// 4. 点击“查看攻略”
var guideBtn = text("查看攻略").findOne(5000);
if (guideBtn) {
guideBtn.click();
sleep(2000);
} else {
log("未找到'查看攻略'按钮");
exit();
}
// 5. 检测左上角“签到成功”
var successText = text("签到成功").findOne(8000);
if (successText) {
log("检测到'签到成功',任务执行完成");
} else {
log("未检测到'签到成功'提示,可能今日已签到或页面加载异常");
}
核心逻辑说明
- 防阻塞查找:全部使用
findOne(timeout)替代findOne(),避免控件未出现时脚本永久卡死。 - 状态校验:每一步点击后均进行存在性判断,失败时输出日志并安全退出,便于定位问题。
- 签到结果判定:设置 8 秒超时等待“签到成功”文本出现,覆盖网络延迟或动画加载时间。
运行前准备
- 确保 Hamibot 客户端已开启无障碍服务与悬浮窗权限。
- 在 Hamibot 控制台创建新脚本,粘贴上述代码后保存运行。
- 首次运行建议在真机或模拟器上开启 Hamibot 的布局分析功能,核对控件
text属性是否与当前 App 版本一致。
维护与优化建议
- 若 App 更新导致文本变化,可将
text("xxx")替换为textContains("xxx")或结合className("android.widget.TextView").depth(x).findOne(5000)提高匹配稳定性。 - 网络较差时,可适当延长
sleep()时间或改用waitForActivity()等待目标页面加载。 - 建议将脚本封装为函数并加入重试机制,提升长期运行的可靠性。
如需适配特定机型或处理弹窗拦截,可提供当前页面的 UI 层级截图或布局树信息,我将为你调整控件定位策略。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实