回答
根据你的需求,以下是基础模板和注意事项:
示例代码(基础框架)
// 文档地址 https://docs.hamibot.com/
// 等待微信启动
waitForPackage("com.tencent.mm");
// 等待小程序页面加载(需替换为实际页面名称)
waitForActivity("com.tencent.mm.ui.LauncherUI");
// 设置循环抢购(示例每3秒执行一次,循环10次)
for (let i = 0; i < 10; i++) {
// 模拟点击抢购按钮(需替换为实际坐标或控件)
click(500, 1000); // 示例坐标,需通过Hamibot控件检测工具获取真实坐标
// 延迟2秒防止操作过快
sleep(2000);
// 提交订单操作(示例)
if (text("立即购买").exists()) {
text("立即购买").click();
}
}
关键注意事项
-
控件定位:
- 需使用Hamibot的「控件检测」功能获取页面元素的id、text或坐标
- 小程序页面元素可能动态变化,需定期更新定位参数
-
时间控制:
// 精准启动脚本(示例在10:00:00启动) var targetTime = "10:00:00"; while (true) { if (new Date().toLocaleTimeString() >= targetTime) { break; } sleep(1000); // 每秒检测一次时间 }
-
异常处理:
// 添加防崩溃机制 auto.waitFor(); try { // 核心抢购逻辑 } catch (e) { toast("发生错误:" + e); hamibot.exit(); }
-
环境要求:
- 需开启无障碍服务和悬浮窗权限
- 安卓10及以上需保持Hamibot在前台运行
- 微信需保持登录状态
重要提示
- 泡泡玛特小程序可能采用动态验证码、滑块验证等风控措施,基础脚本可能无法应对
- 频繁自动化操作可能导致账号被限制,请合理设置执行频率
- 实际开发建议配合Hamibot的图像识别API(需开通权限)
如果需要更具体的操作指导,建议提供页面截图和控件分析结果。对于复杂业务场景,推荐通过「开发者工具」-「控件检测」功能获取准确元素信息。
补充回答 1
完整代码模板(新手向导)
// 文档地址 https://docs.hamibot.com/
// === 基础配置 ===
auto.waitFor(); // 自动开启无障碍服务
device.keepOn(3000); // 保持屏幕常亮5分钟
// === 环境准备 ===
// 启动微信并进入泡泡玛特小程序
launch("com.tencent.mm");
waitForPackage("com.tencent.mm");
toastLog("请保持微信在前台运行");
// === 定时抢购逻辑 ===
var retryCount = 0;
var maxRetry = 50; // 最大重试次数
while(retryCount < maxRetry) {
// 查找抢购按钮(通过控件检测获取的关键属性)
var buyButton = className("android.widget.Button")
.text("立即抢购")
.depth(12)
.findOne(2000);
if(buyButton) {
// 找到目标控件后操作
toastLog("发现抢购按钮,准备点击");
buyButton.click();
// 等待订单提交页面
if(text("提交订单").exists()) {
text("提交订单").click();
toastLog("订单提交成功!");
break;
}
} else {
toastLog("未找到目标控件,第" + (retryCount+1) + "次重试");
}
// 间隔防封策略
sleep(1500 + Math.random()*500); // 1.5-2秒随机延迟
retryCount++;
}
// === 资源释放 ===
device.cancelKeepingOn(); // 取消屏幕常亮
toastLog("脚本执行完毕,退出");
新手操作指南(四步完成)
-
控件检测准备
- 打开Hamibot悬浮窗 → 点击"控件检测"按钮
- 手动进入微信泡泡玛特小程序抢购页面
- 记录抢购按钮的关键属性(text、className、depth等)
-
时间定时设置
// 添加精确启动代码(示例09:59:55启动) while(new Date().toLocaleTimeString() < "09:59:55") { toast("等待目标时间,当前:" + new Date().toLocaleTimeString()); sleep(1000); }
-
异常处理增强
// 添加验证码检测(示例) if(desc("验证码").exists()) { toastLog("检测到验证码,暂停执行"); hamibot.exit(); // 停止脚本 }
-
测试与调试
- 使用"悬浮窗日志"查看执行过程
- 通过
toastLog()
输出调试信息 - 初始测试时建议将
maxRetry
设为5次
常见问题解决方案
-
权限提示
- 弹窗权限:设置 → 应用管理 → Hamibot → 权限管理 → 开启所有权限
- 无障碍服务:设置 → 辅助功能 → Hamibot → 开启服务
-
控件找不到
- 使用
depth()
层级定位 - 尝试
desc()
描述定位代替text()
- 添加
waitFor()
等待加载
- 使用
-
脚本执行太快
- 在关键步骤后添加
sleep(2000)
- 使用
findOne(3000)
设置查找超时
- 在关键步骤后添加
-
防封策略
- 操作间隔随机化:
sleep(1000 + Math.random()*2000)
- 添加失败重试机制
- 操作间隔随机化:
学习路径建议
- 先完成官方快速入门教程 https://hamibot.cn/guide
- 实践控件检测工具使用
- 从简单任务开始测试(如自动签到)
- 逐步增加复杂逻辑(循环/条件判断)
如果遇到具体错误,请提供:①错误日志 ②当前页面截图 ③使用的设备型号,通过support@hamibot.cn获取技术支持。
ℹ️ 本回答由 AI 生成,内容仅供参考