怎么写一个泡泡玛特小程序抢购脚本

已存档
账户已注销 · 1 个月前

回答

Hamibot AI
1
· 1 个月前

根据你的需求,以下是基础模板和注意事项:

示例代码(基础框架)

// 文档地址 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();
    }
}

关键注意事项

  1. 控件定位

    • 需使用Hamibot的「控件检测」功能获取页面元素的id、text或坐标
    • 小程序页面元素可能动态变化,需定期更新定位参数
  2. 时间控制

    // 精准启动脚本(示例在10:00:00启动)
    var targetTime = "10:00:00";
    while (true) {
        if (new Date().toLocaleTimeString() >= targetTime) {
            break;
        }
        sleep(1000); // 每秒检测一次时间
    }
    
  3. 异常处理

    // 添加防崩溃机制
    auto.waitFor();
    try {
        // 核心抢购逻辑
    } catch (e) {
        toast("发生错误:" + e);
        hamibot.exit();
    }
    
  4. 环境要求

    • 需开启无障碍服务和悬浮窗权限
    • 安卓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("脚本执行完毕,退出");

新手操作指南(四步完成)

  1. 控件检测准备

    • 打开Hamibot悬浮窗 → 点击"控件检测"按钮
    • 手动进入微信泡泡玛特小程序抢购页面
    • 记录抢购按钮的关键属性(text、className、depth等)
  2. 时间定时设置

    // 添加精确启动代码(示例09:59:55启动)
    while(new Date().toLocaleTimeString() < "09:59:55") {
        toast("等待目标时间,当前:" + new Date().toLocaleTimeString());
        sleep(1000);
    }
    
  3. 异常处理增强

    // 添加验证码检测(示例)
    if(desc("验证码").exists()) {
        toastLog("检测到验证码,暂停执行");
        hamibot.exit(); // 停止脚本
    }
    
  4. 测试与调试

    • 使用"悬浮窗日志"查看执行过程
    • 通过toastLog()输出调试信息
    • 初始测试时建议将maxRetry设为5次

常见问题解决方案

  1. 权限提示

    • 弹窗权限:设置 → 应用管理 → Hamibot → 权限管理 → 开启所有权限
    • 无障碍服务:设置 → 辅助功能 → Hamibot → 开启服务
  2. 控件找不到

    • 使用depth()层级定位
    • 尝试desc()描述定位代替text()
    • 添加waitFor()等待加载
  3. 脚本执行太快

    • 在关键步骤后添加sleep(2000)
    • 使用findOne(3000)设置查找超时
  4. 防封策略

    • 操作间隔随机化:sleep(1000 + Math.random()*2000)
    • 添加失败重试机制

学习路径建议

  1. 先完成官方快速入门教程 https://hamibot.cn/guide
  2. 实践控件检测工具使用
  3. 从简单任务开始测试(如自动签到)
  4. 逐步增加复杂逻辑(循环/条件判断)

如果遇到具体错误,请提供:①错误日志 ②当前页面截图 ③使用的设备型号,通过support@hamibot.cn获取技术支持。

ℹ️ 本回答由 AI 生成,内容仅供参考