流程录制
Zeus Desktop 提供完整的浏览器操作录制能力,支持将用户在浏览器中的操作自动捕获为可编辑、可重放的工作流。概述
流程录制基于 Chrome DevTools Protocol (CDP) 实现,能够精确捕获 DOM 级别的浏览器操作事件,相比传统的坐标录制方案具有更高的准确性和稳定性。核心能力
| 能力 | 说明 |
|---|---|
| 精确录制 | 基于 CDP 捕获 DOM 事件,支持选择器 + 语义特征双重定位 |
| 可视化编辑 | 拖拽排序、逐步编辑、插入/删除操作步骤 |
| 参数化 | 将固定值标记为变量,支持动态注入 |
| 带参回放 | 测试回放时输入参数值,验证流程正确性 |
| 视频同步 | 操作事件与录制视频时间戳对齐,点击步骤跳转视频 |
快速开始
1. 选择浏览器配置
录制前需要选择一个浏览器配置(Profile),每个配置拥有独立的 Cookie、缓存和登录状态。2. 开始录制
- 点击录制页面中的 开始录制 按钮
- 选择浏览器配置
- 可选开启视频录制(同时捕获屏幕画面)
- 浏览器自动启动,进入录制模式
3. 执行操作
在浏览器中正常操作,系统会自动捕获以下事件:- 页面导航(URL 跳转)
- 鼠标点击
- 文本输入与修改
- 键盘按键
- 页面滚动
- 表单提交
- 拖拽操作
4. 停止录制
点击 停止录制 按钮,录制的操作序列会展示在编辑器中,可进一步编辑和保存。支持的操作类型
浏览器事件
| 类型 | 说明 | 可参数化 |
|---|---|---|
navigate | 页面导航到指定 URL | ✅ URL 可参数化 |
click | 点击页面元素 | ❌ |
input | 在输入框中输入文本 | ✅ 输入值可参数化 |
change | 修改表单控件值(下拉框等) | ✅ 值可参数化 |
scroll | 页面或元素滚动 | ❌ |
keypress | 按下键盘按键(Enter、Tab 等) | ❌ |
wait | 等待指定时间 | ❌ |
submit | 提交表单 | ❌ |
drag | 拖拽元素到目标位置 | ❌ |
系统级事件(扩展)
| 类型 | 说明 |
|---|---|
system_click | 系统级鼠标点击 |
system_keypress | 系统级键盘输入 |
app_switch | 应用切换 |
applescript | AppleScript 脚本执行 |
shell_command | Shell 命令执行 |
元素定位策略
录制时,每个操作的目标元素会采用多重定位策略,确保回放时的高准确率:定位优先级
| 优先级 | 方法 | 置信度 | 说明 |
|---|---|---|---|
| 1 | testId | 1.00 | data-testid 属性精确匹配 |
| 2 | exact | 0.95 | 语义特征完全匹配(role + name) |
| 3 | selector | 0.85 | CSS 选择器匹配 |
| 4 | fuzzy | 0.70 | 模糊匹配(文本内容、aria 属性) |
| 5 | position | 0.60 | 视觉位置匹配 |
| 6 | nth | 0.50 | 索引兜底 |
语义特征(ElementFeatures)
每个操作的目标元素会记录丰富的语义特征:编辑工作流
工作流编辑器
保存录制后,可在工作流编辑器中对操作序列进行修改:- 拖拽排序:调整操作步骤的执行顺序
- 编辑操作:修改选择器、值、URL 等属性
- 插入步骤:在任意位置插入新的操作步骤
- 删除步骤:移除不需要的操作
- 视频同步:点击步骤自动跳转到录制视频对应时间点
编辑操作详情
点击任意操作步骤,打开编辑对话框:- 基础信息:操作类型、描述
- 选择器:CSS 选择器、XPath、元素特征
- 值:输入值、导航 URL
- 参数化设置:标记为变量、设置变量名和默认值
参数化
参数化是将录制中的固定值转换为可动态注入的变量,是实现 AI Agent 驱动执行 的关键能力。什么是参数化
以登录流程为例:| 步骤 | 录制时 | 参数化后 |
|---|---|---|
| 输入用户名 | admin | {username} |
| 输入密码 | 123456 | {password} |
| 导航到系统 | https://sys.example.com | {systemUrl} |
单个操作参数化
- 在工作流编辑器中点击操作步骤,打开编辑对话框
- 开启 参数化 开关
- 设置 变量名(如
username) - 可选填写 参数描述(如 “登录用户名”)
- 可选设置 默认值(如
admin) - 保存
{username}),实际值在运行时通过变量注入。
批量参数化
对于包含多个输入操作的工作流,可以使用 批量参数化 功能:- 在工作流编辑器顶部,如果存在未参数化的
input/change/navigate操作,会显示 批量参数化 提示 - 点击后,系统会自动为这些操作生成变量名(基于元素的
name、id、placeholder等属性) - 自动将当前值设为默认值
- 可在编辑对话框中进一步调整
变量解析机制
回放引擎使用{variableName} 语法进行变量替换:
- 完整替换:
{username}→张三 - 内嵌替换:
https://{host}/api→https://example.com/api - 未匹配的变量保持原样:
{unknown}→{unknown}
回放测试
普通回放
对于没有参数化的工作流,直接选择浏览器配置后开始回放。带参数回放
当工作流包含参数化操作时,点击回放会弹出 参数输入对话框:- 自动展示所有参数化字段
- 显示参数名、描述和默认值
- 必填参数(无默认值)标记为红色
- 填入测试值后点击 开始回放
回放引擎
回放基于 CDP 执行,具备以下特性:| 特性 | 说明 |
|---|---|
| 元素等待 | 自动等待目标元素出现(最长 10 秒) |
| 重试机制 | 操作失败自动重试(最多 3 次,间隔 1 秒) |
| 超时保护 | 单个操作超时 30 秒自动跳过 |
| 进度反馈 | 实时显示执行进度和每步状态 |
| 可视化状态 | 编辑器中高亮当前执行步骤(蓝色执行中/绿色成功/红色失败) |
视频录制
录制选项
| 选项 | 说明 |
|---|---|
| 屏幕/窗口源 | 选择录制整个屏幕或指定窗口 |
| 分辨率 | 720p / 1080p / 4K |
| 帧率 | 30fps / 60fps |
| 麦克风音频 | 录制语音解说 |
| 系统音频 | 录制系统声音(macOS 需 BlackHole) |
视频-操作同步
录制视频与操作事件通过时间戳对齐:- 每个操作记录
videoTimestamp(相对于录制开始的秒数) - 编辑器中点击操作步骤,视频自动跳转到对应时间点
- 回放时视频预览与操作执行同步
存储空间估算
| 分辨率 | 帧率 | 时长 | 文件大小 |
|---|---|---|---|
| 720p | 30fps | 10 分钟 | ~80-120 MB |
| 1080p | 30fps | 10 分钟 | ~150-250 MB |
| 1080p | 30fps | 1 分钟 | ~15-25 MB |