跳转到主要内容

流程录制

Zeus Desktop 提供完整的浏览器操作录制能力,支持将用户在浏览器中的操作自动捕获为可编辑、可重放的工作流。

概述

流程录制基于 Chrome DevTools Protocol (CDP) 实现,能够精确捕获 DOM 级别的浏览器操作事件,相比传统的坐标录制方案具有更高的准确性和稳定性。

核心能力

能力说明
精确录制基于 CDP 捕获 DOM 事件,支持选择器 + 语义特征双重定位
可视化编辑拖拽排序、逐步编辑、插入/删除操作步骤
参数化将固定值标记为变量,支持动态注入
带参回放测试回放时输入参数值,验证流程正确性
视频同步操作事件与录制视频时间戳对齐,点击步骤跳转视频

快速开始

1. 选择浏览器配置

录制前需要选择一个浏览器配置(Profile),每个配置拥有独立的 Cookie、缓存和登录状态。

2. 开始录制

  1. 点击录制页面中的 开始录制 按钮
  2. 选择浏览器配置
  3. 可选开启视频录制(同时捕获屏幕画面)
  4. 浏览器自动启动,进入录制模式

3. 执行操作

在浏览器中正常操作,系统会自动捕获以下事件:
  • 页面导航(URL 跳转)
  • 鼠标点击
  • 文本输入与修改
  • 键盘按键
  • 页面滚动
  • 表单提交
  • 拖拽操作

4. 停止录制

点击 停止录制 按钮,录制的操作序列会展示在编辑器中,可进一步编辑和保存。

支持的操作类型

浏览器事件

类型说明可参数化
navigate页面导航到指定 URL✅ URL 可参数化
click点击页面元素
input在输入框中输入文本✅ 输入值可参数化
change修改表单控件值(下拉框等)✅ 值可参数化
scroll页面或元素滚动
keypress按下键盘按键(Enter、Tab 等)
wait等待指定时间
submit提交表单
drag拖拽元素到目标位置

系统级事件(扩展)

类型说明
system_click系统级鼠标点击
system_keypress系统级键盘输入
app_switch应用切换
applescriptAppleScript 脚本执行
shell_commandShell 命令执行

元素定位策略

录制时,每个操作的目标元素会采用多重定位策略,确保回放时的高准确率:

定位优先级

优先级方法置信度说明
1testId1.00data-testid 属性精确匹配
2exact0.95语义特征完全匹配(role + name)
3selector0.85CSS 选择器匹配
4fuzzy0.70模糊匹配(文本内容、aria 属性)
5position0.60视觉位置匹配
6nth0.50索引兜底

语义特征(ElementFeatures)

每个操作的目标元素会记录丰富的语义特征:
interface ElementFeatures {
  role?: string          // ARIA 角色
  name?: string          // 可访问名称
  testId?: string        // data-testid
  ariaLabel?: string     // aria-label
  text?: string          // 文本内容
  placeholder?: string   // placeholder 属性
  tagName?: string       // HTML 标签名
  type?: string          // input type
}
这些特征使得即使页面 DOM 结构发生变化,回放引擎仍然能够通过语义信息找到正确的目标元素。

编辑工作流

工作流编辑器

保存录制后,可在工作流编辑器中对操作序列进行修改:
  • 拖拽排序:调整操作步骤的执行顺序
  • 编辑操作:修改选择器、值、URL 等属性
  • 插入步骤:在任意位置插入新的操作步骤
  • 删除步骤:移除不需要的操作
  • 视频同步:点击步骤自动跳转到录制视频对应时间点

编辑操作详情

点击任意操作步骤,打开编辑对话框:
  • 基础信息:操作类型、描述
  • 选择器:CSS 选择器、XPath、元素特征
  • :输入值、导航 URL
  • 参数化设置:标记为变量、设置变量名和默认值

参数化

参数化是将录制中的固定值转换为可动态注入的变量,是实现 AI Agent 驱动执行 的关键能力。

什么是参数化

以登录流程为例:
步骤录制时参数化后
输入用户名admin{username}
输入密码123456{password}
导航到系统https://sys.example.com{systemUrl}
参数化后,这些值不再是固定的,而是在回放/调用时由外部传入。

单个操作参数化

  1. 在工作流编辑器中点击操作步骤,打开编辑对话框
  2. 开启 参数化 开关
  3. 设置 变量名(如 username
  4. 可选填写 参数描述(如 “登录用户名”)
  5. 可选设置 默认值(如 admin
  6. 保存
开启参数化后,操作的值字段会显示为变量引用(如 {username}),实际值在运行时通过变量注入。

批量参数化

对于包含多个输入操作的工作流,可以使用 批量参数化 功能:
  1. 在工作流编辑器顶部,如果存在未参数化的 input/change/navigate 操作,会显示 批量参数化 提示
  2. 点击后,系统会自动为这些操作生成变量名(基于元素的 nameidplaceholder 等属性)
  3. 自动将当前值设为默认值
  4. 可在编辑对话框中进一步调整

变量解析机制

回放引擎使用 {variableName} 语法进行变量替换:
输入值: "Hello, {username}! Your code is {verifyCode}"
传入变量: { username: "张三", verifyCode: "123456" }
实际执行: "Hello, 张三! Your code is 123456"
变量解析支持:
  • 完整替换:{username}张三
  • 内嵌替换:https://{host}/apihttps://example.com/api
  • 未匹配的变量保持原样:{unknown}{unknown}

回放测试

普通回放

对于没有参数化的工作流,直接选择浏览器配置后开始回放。

带参数回放

当工作流包含参数化操作时,点击回放会弹出 参数输入对话框
  1. 自动展示所有参数化字段
  2. 显示参数名、描述和默认值
  3. 必填参数(无默认值)标记为红色
  4. 填入测试值后点击 开始回放

回放引擎

回放基于 CDP 执行,具备以下特性:
特性说明
元素等待自动等待目标元素出现(最长 10 秒)
重试机制操作失败自动重试(最多 3 次,间隔 1 秒)
超时保护单个操作超时 30 秒自动跳过
进度反馈实时显示执行进度和每步状态
可视化状态编辑器中高亮当前执行步骤(蓝色执行中/绿色成功/红色失败)

视频录制

录制选项

选项说明
屏幕/窗口源选择录制整个屏幕或指定窗口
分辨率720p / 1080p / 4K
帧率30fps / 60fps
麦克风音频录制语音解说
系统音频录制系统声音(macOS 需 BlackHole)

视频-操作同步

录制视频与操作事件通过时间戳对齐:
  • 每个操作记录 videoTimestamp(相对于录制开始的秒数)
  • 编辑器中点击操作步骤,视频自动跳转到对应时间点
  • 回放时视频预览与操作执行同步

存储空间估算

分辨率帧率时长文件大小
720p30fps10 分钟~80-120 MB
1080p30fps10 分钟~150-250 MB
1080p30fps1 分钟~15-25 MB

本地存储

工作流数据存储在本地文件系统中:
{userData}/workflows/
├── {workflow-id}.json          # 工作流定义(操作序列 + 元数据)
├── {workflow-id}/
│   ├── recordings/             # 录制视频文件
│   │   └── recording.webm
│   ├── screenshots/            # 关键帧截图
│   │   ├── action-001.png
│   │   └── action-002.png
│   └── metadata.json           # 同步元数据

工作流 JSON 结构

{
  "id": "wf-abc123",
  "name": "登录系统并查询数据",
  "actions": [
    {
      "id": "act-001",
      "type": "navigate",
      "url": "https://system.example.com",
      "timestamp": 1700000000000
    },
    {
      "id": "act-002",
      "type": "input",
      "selector": "#username",
      "value": "{username}",
      "isParameterized": true,
      "variableName": "username",
      "paramDescription": "登录用户名",
      "defaultValue": "admin",
      "elementFeatures": {
        "role": "textbox",
        "name": "用户名",
        "placeholder": "请输入用户名"
      }
    }
  ],
  "profileId": "profile-001",
  "toolName": "login_and_query",
  "toolDescription": "登录系统并查询指定数据",
  "isPublished": true
}

下一步

录制完成并参数化后,可以将工作流 发布为 RPA 工具,让 AI Agent 能够远程调用。