打开特定安卓软件等待一段时间点击特定按钮并判断新的页面再次点击特定按钮

城月 · 2 小时前

回答

Hamibot AI
1
· 2 小时前

要实现打开特定安卓软件、等待一段时间、点击按钮、判断新页面并再次点击按钮的自动化流程,可以使用 Hamibot 的自动化 API 组合完成。以下是一个标准实现模板,涵盖了启动应用、等待控件、点击、页面判断与二次点击的完整逻辑,并包含必要的兼容性处理。

// 文档地址 https://docs.hamibot.com/

// 启动目标应用,以包名方式启动
app.launchPackage('com.example.app'); // 替换为实际应用包名

// 等待应用完全启动,建议等待核心控件出现
sleep(3000); // 基础等待,根据应用启动速度调整

// 等待第一个按钮出现并点击
var btn1 = text('按钮文字').findOne(10000); // 最长等待10秒
if (btn1) {
    btn1.click();
    log('点击了第一个按钮');
} else {
    toast('未找到第一个按钮');
    hamibot.exit();
}

// 等待新页面加载完成,然后点击第二个按钮
// 通过判断新页面特有的控件是否存在来确认跳转成功
var newPageReady = text('新页面标题').findOne(10000);
if (newPageReady) {
    log('已进入新页面');
    // 点击第二个按钮
    var btn2 = id('com.example:id/btn_submit').findOne(5000);
    if (btn2) {
        btn2.click();
        log('点击了第二个按钮');
    } else {
        toast('未找到第二个按钮');
    }
} else {
    toast('新页面未在规定时间内加载');
    hamibot.exit();
}

// 清理线程(如有必要)
threads.shutDownAll();

关键点说明:

  1. 启动应用
    使用 app.launchPackage('包名') 可直接启动应用,无需模拟点击桌面图标。若需要从桌面点击启动,可通过 launchApp('应用名称') 实现,但包名方式更稳定。

  2. 等待与点击

    • findOne(timeout) 会阻塞脚本直到控件出现或超时,避免盲目 sleep
    • 点击操作前先判断控件是否存在,避免因未找到控件导致脚本崩溃。
    • 如果需要通过坐标点击,可以用 click(x, y),但推荐使用控件定位以提高兼容性。
  3. 页面判断
    通过检测新页面独有的控件(如标题、特定按钮)来确认跳转成功,这是最可靠的页面判断方式。避免仅依赖 sleep 猜测页面加载时间。

  4. 多设备适配

    • 不同系统可能对控件 ID 或文本渲染有差异,使用「布局分析」工具获取目标控件的实际属性。
    • 若控件 ID 在不同设备上不固定,可用 textdescclassName 等组合定位。
  5. 异常处理
    每一步都加入了超时未找到控件的退出逻辑,防止脚本卡死。hamibot.exit() 用于安全终止脚本。

  6. 兼容性
    代码中未使用箭头函数、默认参数等 ES6 特性,确保在 Rhino 引擎下稳定运行。

如果需要更复杂的流程(如循环判断、结合屏幕截图判断),可在此基础上扩展。

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