文章总结: 本文介绍了一款名为行彻记录仪的Chromium浏览器扩展,用于自动化重复的网页操作如表单填报、数据采集和安全运营。它支持网页操作录制、AI生成脚本、元素拾取、变量系统、截图和文件上传等功能。核心优势在于通过录制或AI生成流程,一键执行重复任务,提升工作效率。项目提供脚本管理和E2E测试,适合安全运营和日常RPA场景。 综合评分: 88 文章分类: 安全运营,AI安全,安全开发,实战经验,安全工具
我不想再点八百遍了,于是做了个“行彻记录仪”
原创
赛赛 赛赛
W啥都学
2026年8月20日 08:15 北京
在小说阅读器读本章
去阅读
Chromium / Chrome / Edge 浏览器扩展
🤔 为什么会有这个项目?
我只是一个点鼠标的猴子
某个写不完需求的晚上,我盯着浏览器发呆,脑子里全是这些画面:
同一个操作,一天点 八百遍:打开 → 填表 → 提交 → 下一单
我就想,既然这些操作本身就有规律,那为什么不让浏览器自己做?
于是就有了该项目就诞生了
🧭 项目简介
因此它特别适合:
- • 表单填报
- • 数据采集
- • 后台系统操作
- • 安全运营平台
- • 工单处理
- • 告警处置
- • 重复性测试
- • 批量截图
- • 网页数据整理
- • 日常 RPA 类工作
一句话:把你在浏览器里重复做的事情,记录一次,以后让浏览器自己做
✨ 核心特性
| 能力 | 说明 | | — | — | | 🎙️ 网页录制 | 记录输入、点击、按键、复制、粘贴等操作 | | 🌐 跨标签页 | 多个标签页操作自动汇总到同一个脚本 | | 🎯 元素拾取 | 可视化选择网页元素,自动生成选择器 | | 🛠️ 流程编辑 | 添加、删除、排序、分组、启用/禁用步骤 | | ▶️ 一键启动 | 保存脚本后无需打开编辑面板即可执行 | | ⏸️ 暂停 / 继续 | 流程执行过程中随时暂停 | | ⚡ 速度倍率 | 支持 1x / 2x / 5x / 10x | | 🔀 跨页面执行 | 根据步骤来源页面自动跳转 | | 📑 新标签页模式 | 支持在真实新标签页中执行 | | 📋 变量系统 | 复制 → 变量 → 自动填表 | | 📌 常量 | 预定义固定参数和路径 | | 🔍 内容校验 | 对页面内容进行等于 / 包含等条件判断 | | 🛡️ 备选选择器 | 主选择器失效时自动尝试备用选择器 | | 📷 整页截图 | 自动滚动并拼接超长页面 | | 🖼️ 区域截图 | 鼠标框选指定区域进行截图 | | 🎯 元素截图 | 直接截图指定 DOM 元素 | | 🔄 容器长截图 | 支持内部滚动容器 | | 💤 自动隐藏 | 截图时自动隐藏行彻面板 | | 📎 文件上传 | 向文件上传控件注入本地文件 | | 🤖 AI 生成脚本 | 用自然语言生成网页操作流程 | | 🤖 AI 智能体 | AI 观察页面并自主决定下一步操作 | | 💾 脚本管理 | 按站点保存、导入、导出 JSON | | 🔄 页面恢复 | 刷新 / 跨页面后自动恢复执行状态 |
🤖 AI 能力
行彻不仅可以记录你做过什么,还可以让 AI 帮你生成和执行流程
打开我想要树莓派5他会自动调用浏览器给你下单,AI 会结合当前页面元素生成对应的操作步骤
🎙️ 网页操作录制
录制模式
点击:录制
然后正常操作网页。
以下操作可以自动记录:
| 操作类型 | 说明 |
| — | — |
| ✏️ 输入 | 自动记录输入框、contenteditable 等内容输入 |
| 🖱️ 点击 | 自动记录按钮、链接、表格行等元素点击 |
| ⌨️ 按键 | 支持 Enter 等键盘操作 |
| 📋 复制 | 支持 Ctrl+C,可将内容保存为变量 |
| 📥 粘贴 | 支持 Ctrl+V,可记录粘贴操作 |
| 🔗 页面跳转 | 自动记录页面导航及跨页面操作 |
| 📷 截图 | 记录截图相关操作 |
| 🌐 跨标签页 | 不同标签页中的操作可记录到同一个脚本 |
操作就会自动转换成步骤
🌐 跨标签页录制
录制开始后,浏览器中的多个标签页都可以参与录制
最终都会保存到同一个脚本中
未打开面板的标签页会显示:
🎯 元素拾取器
不需要手写 CSS Selector
点击:在页面上选元素
然后:
| 操作 | 说明 |
| — | — |
| 🖱️ 悬停元素 | 鼠标移动到元素上时自动高亮 |
| 🎯 选择元素 | 点击目标元素完成拾取 |
| 🔍 生成选择器 | 自动生成相对稳定的 CSS 选择器 |
| 🔘 Div 按钮 | 支持常见 div 模拟按钮 |
| 📊 表格 | 支持表格及表格内元素 |
| 📑 表格行 | 可直接拾取整行元素 |
| 🔗 链接 | 支持 a 等链接元素 |
| ✏️ 输入框 | 支持 input、textarea 等 |
| 📝 Contenteditable | 支持可编辑区域 |
| 🧩 其它元素 | 支持常见网页 DOM 元素 |
🛡️ 备选选择器
网页 UI 经常会发生一些小变化。
录制元素时可以继续添加多个备选选择器。
当主选择器失效后,会按照顺序自动尝试备用选择器。
⚡ 启动速度
支持:
1x 正常
2x 加速
5x 快速
10x 极速
同时保留最小等待时间,避免页面还没响应就继续执行
📋 变量系统
这是行彻比较核心的一套能力
| 数据 | 变量 | 工单中使用 |
| — | — | — |
| 告警名称 | {{name}} | 告警名称:{{name}} |
| 攻击者 IP | {{src}} | 攻击来源:{{src}} |
| 受害者 IP | {{dst}} | 受害地址:{{dst}} |
| 严重性 | {{sev}} | 严重程度:{{sev}} |
启动后自动完成填表
变量支持
拼接
前缀-{{name}}-后缀
截取前 N 个字符
{{2-name}}
截取末尾 N 个字符
{{-2-name}}
映射替换
{{sev:严重=高危,信息=低危}}
例如:
严重
自动转换为:
高危
📌 设置常量
如果某些值不需要每次复制,可以直接定义常量:
{{base_url}}
{{project}}
{{operator}}
例如:
base_url = http://127.0.0.1
之后 URL 可以直接写:
https://www.exploit-db.com{{base_url}}
常量本身也支持变量引用。
📋 复制 / 粘贴
动态复制
默认情况下,复制步骤会在启动时重新读取页面内容
例如:
复制告警名称
第一次执行:
SQL 注入
下一次执行:
XSS
脚本不需要修改
固定复制
如果希望始终使用录制时的数据,可以切换到:固定值
| 场景 | 示例 | | — | — | | 固定测试数据 | 测试名称、测试内容等 | | 固定参数 | 环境参数、请求参数等 | | 固定账号 | 测试账号、操作账号等 | | 固定业务编号 | 工单号、项目编号等 |
区域复制
普通复制只能拿到某个元素
开启:区域复制
后,会自动向上寻找合适容器,将整个区域内容复制下来,可以一次复制整个区域
📷 截图能力
行彻内置了完整的网页截图能力。
支持:整页截图
自动获取完整页面高度
对于超长页面:
最终得到完整长图
| 截图模式 | 说明 | 适用场景 |
| — | — | — |
| 🔄 自动滚动截图 | 截图前自动滚动到底,触发页面加载更多内容后再进行截图 | 无限列表、数据表格、懒加载、动态内容 |
| 📑 分段截图 | 超长页面按屏幕分段截图,每一屏生成一张图片 | 超长页面、不需要拼接完整长图 |
| 🖱️ 框选截图 | 鼠标拖动选择矩形区域,只截取选中的范围 | 页面局部区域 |
| 🎯 元素截图 | 直接选择指定 DOM 元素进行截图 | 表格、卡片、图片、指定元素 |
| 📜 内部滚动长截图 | 自动识别并滚动内部容器,分段截图后自动拼接 | 微前端、嵌套页面、内部滚动区域、overflow: auto 容器 |
📦 截图缓存
截图默认存储在插件缓存中,不会直接塞满浏览器下载目录
| 功能 | 说明 | | — | — | | 🖼️ 缩略图预览 | 快速查看缓存截图 | | 🔍 大图查看 | 点击查看完整原图 | | 💾 下载 | 将截图保存到本地 | | 🗑️ 删除 | 删除不需要的缓存截图 |
也可以把截图保存为变量:
{{screenshot}}
后续步骤直接使用
📤 图片 / 文件上传
支持向:
<input type="file">
注入本地文件。
同时支持:
🔍 内容校验
可以读取页面内容进行断言
支持:
| 条件 | 说明 | | — | — | | 等于 | 内容完全匹配 | | 不等于 | 内容不匹配 | | 包含 | 包含指定内容 | | 不包含 | 不包含指定内容 |
同时可以分别配置:
匹配时
- • 直接继续
- • 只提示
- • 提示并暂停
- • 失败停止
不匹配时
- • 直接继续
- • 只提示
- • 提示并暂停
- • 失败停止
因此既可以做硬性断言,也可以在流程中加入人工确认点
🧩 支持的步骤
| 步骤 | 功能 | | — | — | | 📁 分组 | 整理步骤,可折叠、整组启用/禁用 | | 🔗 打开页面 | 打开指定 URL,支持变量 | | 📌 设置常量 | 定义固定变量 | | ✏️ 填内容 | 输入文本 / contenteditable | | 👆 点击 | 点击页面元素 | | ⌨️ 按键 | Enter 等键盘操作 | | ⏳ 等待 | 等待指定时间 | | 📷 截图 | 整页 / 区域 / 元素 / 滚动长图 | | 📋 复制 | 读取页面内容并保存到变量 | | 📥 粘贴 | 文本 / 图片 / 变量 | | 📎 上传文件 | 注入本地文件 | | 🔍 校验内容 | 页面内容断言 |
🛠️ 面板编辑
除了直接录制,也可以手动搭建流程。
点击:+ 添加步骤
即可添加:
- • 打开页面
- • 设置常量
- • 填内容
- • 点击
- • 按键
- • 等待
- • 截图
- • 复制
- • 粘贴
- • 上传文件
- • 校验内容
- • 分组
每一步都可以:
- • 编辑参数
- • 修改备注
- • 设置执行后等待
- • 上移 / 下移
- • 删除
- • 启用 / 禁用
📦 脚本管理
脚本按照站点进行保存
| 功能 | 说明 | | — | — | | ➕ 创建脚本 | 新建自动化脚本 | | ✏️ 编辑脚本 | 修改步骤和参数 | | 🗑️ 删除脚本 | 删除不需要的脚本 | | 📤 导出 JSON | 将脚本导出为 JSON 文件 | | 📥 导入 JSON | 从 JSON 文件恢复脚本 | | 🌐 按站点管理 | 根据网站分别保存和管理脚本 |
因此可以把一套流程直接导出给其它浏览器或机器使用。
🧪 开发与测试
项目自带端到端冒烟测试。
环境要求:
pip install playwright pillow numpy
playwright install chromium
执行:
python3 smoke_test.py
Linux 无显示环境:
xvfb-run -a python3 smoke_test.py
全部测试通过后输出:
ALL SCENARIOS PASSED
目前覆盖:
- • 启动
- • 暂停 / 继续
- • 停止
- • 录制
- • 跨标签页录制
- • 整页截图
- • 框选截图
- • 元素截图
- • 自动滚动长图
- • 元素滚动长图
- • 跨页面执行
- • 新标签页执行
- • 文件上传
- • 复制 / 粘贴
- • 变量
- • 一键启动
- • 启动速度倍率
- • 面板最小化 / 恢复
📁 项目结构
.
├── manifest.json # MV3 配置
├── background.js # Service Worker / CDP / 跨标签页协调
│
├── content/
│ ├── content.js # 拾取 / 录制 / 启动引擎 / 跨页续跑
│ ├── panel.js # Shadow DOM 浮动面板
│ └── picker.css # 拾取 / 框选覆盖层
│
├── lib/
│ ├── selectors.js # 稳定选择器生成
│ ├── steps.js # 步骤 Schema
│ └── store.js # chrome.storage 封装
│
├── popup/
│ └── ... # 扩展 Popup
│
├── icons/
│ └── ... # 扩展图标
│
├── assets/
│ └── ... # README 图片
│
├── mock/
│ └── ... # 冒烟测试模拟站点
│
└── smoke_test.py # E2E 冒烟测试
🛣️ Roadmap
后续可以继续完善:
- • [ ] 更多网页事件录制
- • [ ] 更强的动态元素定位
- • [ ] iframe 元素拾取优化
- • [ ] Shadow DOM 深度支持
- • [ ] 更丰富的变量处理
- • [ ] 条件分支
- • [ ] 循环执行
- • [ ] 批量数据驱动
- • [ ] 更完善的 AI Agent
- • [ ] AI 自动修复失效步骤
- • [ ] 任务历史与运行记录
- • [ ] 流程执行统计
- • [ ] 更多 Chromium 浏览器兼容性测试
- 关注公众号回复:xingche 获取
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:W啥都学 赛赛 赛赛《我不想再点八百遍了,于是做了个“行彻记录仪”》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论