SuperAPI AI 工具集

recorder

测试与质量

查看项目

更新于 10-16 05:57

技能介绍

Recorder 用于录制用户手动执行的实时浏览器工作流,并将其转换为可回放的脚本或 API。它面向需要手动捕获浏览器操作的场景,例如多标签页操作等。如果用户希望进行无需手动录制的程序化浏览器自动化,则不应使用本技能,而应改用 opensteer 技能。

用途

录制真实浏览器流程并保存为确定性回放脚本。适用于手动浏览器捕获、多标签页等场景。

前置条件

验证 CLI 是否可用:

command -v opensteer >/dev/null 2>&1 && echo "ok" || echo "opensteer not found"

云端录制需验证所需环境变量已设置:

test -n "$OPENSTEER_API_KEY" && test -n "$OPENSTEER_CLOUD_APP_BASE_URL" && echo "ok" || echo "missing cloud env vars"

快速开始

本地录制:

opensteer record --workspace <id> --url <url>

云端录制:

opensteer record --provider cloud --workspace <id> --url <url>

模式选择

当用户希望与本地 Playwright 浏览器窗口交互时,使用 provider=local。本地模式需要带界面的持久化浏览器,不要传入 --headless true。

当用户希望通过云端浏览器会话 UI 交互时,使用 provider=cloud。云端模式不要强制 headless=false。云端不支持 browser.mode="attach"。

工作流程

  1. 运行 opensteer record --workspace <id> --url <url>(云端则加上 --provider cloud)。
  2. 若为云端,将 CLI 打印的浏览器会话 URL 提供给用户。
  3. 告知用户手动执行工作流。
  4. 明确告知用户如何停止:本地模式点击浏览器页面中注入的 Stop recording 按钮;云端模式点击浏览器会话工具栏 UI 中的 Stop recording。
  5. 用户录制期间保持 record 命令运行,不要中断。除非用户明确要中止,否则不要用 Ctrl+C 停止。
  6. 等待 CLI 进程退出。不要仅因为浏览器 URL 已打印就认为录制完成。
  7. 验证输出文件存在于 .opensteer/workspaces/<id>/recorded-flow.ts(或指定的 --output 路径)。
  8. 编辑前先阅读并总结生成的脚本。
  9. 若用户需要验证,回放脚本:npx tsx <path-to-recorded-flow.ts>。

主要能力

录制器可捕获点击、文本输入、按键、滚动、下拉选择变更、导航以及多标签页操作。

限制

不完全支持以下内容:

  • 跨源 iframe(不会录制)
  • Shadow DOM 选择器(尽力而为)
  • 文件上传、拖放和 canvas 交互
  • 浏览器后退/前进检测(可能回退为直接导航回放)

规则

  • 录制要求 engine=playwright。
  • 不要使用已移除的超时标志,如 --record-timeout-ms。
  • 如果启动参数值以 -- 开头,应传为 --arg=...,而不是 --arg ...。
  • 用户录制期间不要混入额外的 agent 操作,除非用户明确要求。
  • 如果回放失败,应调试并修复生成的脚本,而不是立即重新录制。

故障排除

  • 录制器无法启动:验证 workspace ID 有效且浏览器引擎为 playwright。
  • CLI 以错误退出:重试前先阅读 stderr 中的错误信息。
  • 生成的脚本有错误:检查并修复脚本,而不是重新录制。
  • 输出文件缺失:检查用户是否正确停止录制(点击按钮,而非 Ctrl+C)。