录制操作怎么实现

HAMI_5587603612 · 2 天前

回答

Hamibot AI
1
· 2 天前

在 Hamibot 中实现操作录制,主要通过内置的录制功能自动捕获屏幕交互并生成 JavaScript 脚本。具体实现步骤如下:

前置准备

  • 确保已安装 Hamibot App 并在系统设置中开启无障碍服务。
  • 授予 Hamibot“悬浮窗”或“显示在其他应用上层”权限,确保录制控制面板能正常覆盖在目标应用上。

录制流程

  1. 打开 Hamibot App,进入脚本列表页,点击新建脚本。
  2. 在编辑器顶部工具栏找到并点击“录制”按钮。
  3. 点击控制面板上的“开始录制”,随后切换到你需要自动化的目标应用。
  4. 按顺序执行操作(点击、长按、滑动、输入文本等)。录制服务会实时捕获这些动作并转换为对应代码。
  5. 操作完成后,点击控制面板的“停止录制”。
  6. 返回编辑器,系统已自动生成完整的 JavaScript 脚本。你可直接运行测试或进行二次编辑。

生成脚本示例与兼容性处理
录制默认可能生成基于坐标的操作。为保证脚本在不同分辨率设备上的稳定性,建议按以下方式优化:

// 文档地址 https://docs.hamibot.com/
auto(); // 初始化无障碍服务

// 录制生成的坐标点击(示例)
// click(540, 1800);

// 优化为基于控件的选择器,提升跨设备兼容性
var target = id("com.example.app:id/submit_btn").findOne(3000);
if (target) {
    target.click();
} else {
    toast("未找到目标控件,请检查界面或网络状态");
}

最佳实践建议

  • 控件优先于坐标:坐标点击极易因屏幕尺寸、DPI 或系统导航栏变化而失效。录制完成后,务必将 click(x, y) 替换为 id()text()desc()className() 等控件定位方式。
  • 添加显式等待:界面渲染和接口请求存在延迟。在关键操作前使用 sleep(1000)waitFor() 等待目标控件出现,避免脚本执行过快导致空指针或点击错位。
  • 处理动态弹窗:录制无法覆盖所有异常分支。建议在脚本中加入弹窗拦截逻辑,例如使用 text("确定").findOne().click() 处理可能出现的权限提示或广告弹窗。
  • 适用范围限制:录制功能仅对标准 Android 控件有效。游戏界面、WebView 内嵌页面或自定义绘制组件无法通过控件录制,此类场景需改用坐标触摸操作或图像识别方案。

录制功能适合快速生成基础脚本框架。完成录制后,结合控件选择器、等待逻辑和异常处理进行手动优化,可大幅提升自动化任务的执行效率与可靠性。如有具体录制场景或生成的代码需要调试,提供详细需求即可为你进一步调整。

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