我不想再点八百遍了,于是做了个“行彻记录仪”

作者:W啥都学 发布:2026-08-20 08:15 收录:2026-09-07 08:27 2 次阅读 约 2715 字
摘要:一个能录制网页操作、自动重复执行,还能让 AI 帮你操作浏览器的小工具
推荐理由:本文涵盖「浏览器扩展」、「网页录制」、「RPA」等多个主题,重点关注 浏览器扩展。

 

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 等链接元素
✏️ 输入框
支持 inputtextarea 等
📝 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啥都学), 原文标题《我不想再点八百遍了,于是做了个“行彻记录仪”》, 查看原文。 版权归原作者及原发布平台所有,本站仅作收录与展示,未对正文内容作实质性修改; 若涉及侵权请联系本站处理。