ZTT.返回作品集

录放台 浏览器操作录制回放

在受控浏览器里录制一次网页操作,整理成可审阅、可编辑的工作流;之后一键按原步骤回放,数据全部留在本机。

背景

导出报表、巡检页面、批量填表这类重复网页操作,每次都要手动点一遍;自动化脚本编写门槛高,页面一改就失效,密码也不好处理。希望“录一次,以后点一下”就能完成,并且录到的每一步都可审阅、可修正。

核心功能

受控浏览器录制与步骤合并、定位器审阅、匹配数与唯一性校验、JSON Schema 与执行语义双层校验、秘密库只存引用名,按 Windows 账户加密、结果证据分类与从失败步重试、Agent API 与 MCP 工具接口

工作流程

受控录制 → 审阅与校验 → 秘密引用 → 一键回放 → 结果与续跑

录下来,还要审得清

录制把连续输入合并成一次 fill,并说明其他事件被丢弃的原因。审阅页为每一步列出候选定位器(role、label、test_id、text、css)和它们在当前页面的匹配数量,多匹配与找不到的步骤会被明确标出。

  • 定位值、顺序和完成条件都可编辑,重新校验唯一性后再保存。
  • 「试运行草稿」按当前草稿立即执行一次,不必先保存。
  • 保存前必须通过 JSON Schema 与执行语义两层校验,有阻塞项时无法保存。

结果按证据说话

运行结果分为完成、完成·未验证、未确认、失败、已取消:动作是否发出、是否被验证决定归类。未确认不会被判成成功;从失败步重试只执行剩余步骤,已发出的动作绝不重跑。

  • 密码类输入只记录“这是敏感字段”,不记录内容。
  • 秘密库按当前 Windows 账户(DPAPI)加密在本机,缺值时运行被直接拦下。
  • 运行历史记录事实日志;程序重启后不会自动续跑。

给 Agent 的工具接口

本机接口只监听 127.0.0.1,把工作流库变成一组带 schema 的工具:查看、校验、保存与回放,另经 MCP 桥接供任意 MCP 客户端调用。写入与回放必须显式确认,秘密值在任何工具响应中都不返回。

  • 工具按读取、写入、执行分级,执行类返回步骤时间线与结果分类。
  • 保存被双层校验拦截时返回阻塞项,Agent 不需要读源码即可修正。
  • 数据全部留在本机,运行不依赖云服务。

操作与迭代

录一次操作

在受控浏览器里按正常习惯操作页面:连续输入合并为一次 fill,其他事件列出丢弃原因;密码类输入只记录“这是敏感字段”,不记录内容。

审阅、校验并回放

审阅页列出每一步的候选定位器与匹配数量,多匹配和找不到的步骤被明确标出;通过 JSON Schema 与执行语义双层校验后保存,回放按原步骤执行并输出证据化结果。

从“能用”到“可审阅”

最初只想要“录完就能放”,但页面一变回放就断。把候选定位器、匹配数量和结果分类做成显式的审阅界面后,出错时能直接看到是哪一步、为什么;修正定位值再重放,比改脚本快得多。

真实软件界面

录放台 浏览器操作录制回放 / WORKFLOW DESK
WORKFLOW DESK

实现方法

Python / Playwright / JSON Schema / Windows DPAPI / AGENT API / MCP

个人职责

需求定义 / 产品规划 / 工作流分析 / AI 辅助开发 / 界面实现 / 测试与迭代

我从需求出发设计产品和工作流程,通过 Vibe Coding 完成开发,也负责功能验证、界面迭代和交付整理。

实际使用结果

形成日常可用的本机自动化工具:录制、审阅、校验、回放、运行历史与秘密库齐备,工作流库还能作为带 schema 的工具被任意本机 Agent 调用。

项目问答

密码是怎么处理的?

工作流只保存秘密引用名,真实值按当前 Windows 账户(DPAPI)加密保存在本机;缺值时运行被直接拦下并指出引用名,任何工具响应都不返回秘密值。

运行结果为什么会分为五类?

完成、完成·未验证、未确认、失败、已取消按动作是否发出、是否被验证划分。未确认表示动作已发出一次但无法判断页面是否生效,不会被判成成功;从失败步重试只执行剩余步骤,已发出的动作绝不重跑。

Agent 如何使用录放台?

本机接口只监听 127.0.0.1,把工作流库开放为一组带 schema 的工具(查看、校验、保存、回放),另经 MCP 桥接供任意 MCP 客户端调用;写入与回放必须显式确认,工具按读取、写入、执行分级。

张天腾 / Zhang Tianteng · 案例内容更新 · 个人资料 · GitHub