Install
openclaw skills install @thcjp/browser-agent-tool-freeopenclaw skills install @thcjp/browser-agent-tool-free核心功能: 本技能提供中文交互、化CLI、化工作流场景等能力。
本工具是一个无头浏览器自动化命令行工具,通过可访问性树(accessibility tree)快照与 ref 引用实现确定性的元素选择,适合 AI 代理在多步骤工作流中稳定地操作网页。免费版面向个人开发者,提供核心导航、交互、信息获取与会话管理能力。
与内置浏览器工具相比,本工具在以下场景更有优势:
| 能力分类 | 命令示例 | 说明 |
|---|---|---|
| 导航 | open / back / forward / reload | 页面跳转与历史控制 |
| 快照 | snapshot -i --json | 获取可交互元素的可访问性树 |
| 交互 | click / fill / type / select | 基于 ref 的元素操作 |
| 获取信息 | get text / get html / get attr | 提取页面内容 |
| 状态检查 | is visible / is enabled | 判断元素状态 |
| 等待 | wait / wait --load networkidle | 同步页面加载 |
| 会话 | --session | 多浏览器上下文隔离 |
| 状态持久化 | state save / state load | 保存/加载 cookies 与 storage |
用input_params参数进行配置。
输出: 返回核心功能执行的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作用config_options参数进行配置。
输出: 返回参数配置与调用的执行结果,包含操作状态和输出数据。
config_options参数,支持修改/重置/导入操作用output_format参数进行配置。
输出: 返回结果处理与输出的执行结果,包含操作状态和输出数据。
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:无头浏览器自动化、支持可访问性树快、照与确定性元素选、适合个人开发者、命令行工具、通过可访问性树快、实现确定性元素选、代理优化的浏览器、操作工作流、核心能力、与可访问性树快照、引用的确定性元素、多会话隔离与状态、PDF、生成与网络控制等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。个人用户希望在站点完成每日签到并截图留证。
# 打开签到页面
agent-browser open https://example.com/checkin
# 获取可交互元素快照
agent-browser snapshot -i --json
# 点击签到按钮(根据快照返回的 ref)
agent-browser click @e2
# 等待页面稳定
agent-browser wait --load networkidle
# 截图保存
agent-browser screenshot checkin_$(date +%Y%m%d).png
# 关闭浏览器
agent-browser close
在搜索引擎中查询关键词,提取前几条结果标题与链接。
agent-browser open https://www.google.com
agent-browser snapshot -i --json
agent-browser fill @e1 "AI agents"
agent-browser press Enter
agent-browser wait --load networkidle
agent-browser snapshot -i --json
agent-browser get text @e3 --json
agent-browser get attr @e4 "href" --json
同时管理两个独立浏览器上下文(例如管理员与普通用户)。
# 管理员会话
agent-browser --session admin open https://app.example.com
agent-browser --session admin state load admin-auth.json
agent-browser --session admin snapshot -i --json
# 普通用户会话
agent-browser --session user open https://app.example.com
agent-browser --session user state load user-auth.json
agent-browser --session user snapshot -i --json
# 查看所有会话
agent-browser session list
以下场景浏览器智能代理工具-免费版不适合处理:
需要AI模型调用、智能对话、Agent编排、LLM应用时使用。不适用于非本工具能力范围的需求。
npm install -g agent-browser
agent-browser install # 下载 Chromium 内核
# Linux 系统可一并安装系统依赖:
agent-browser install --with-deps
# 打开页面
# 获取可交互元素快照(始终使用 -i --json)
agent-browser snapshot -i --json
# 基于 ref 进行操作
agent-browser click @e2
agent-browser fill @e3 "文本内容"
# 再次快照以获取新的 ref
agent-browser snapshot -i --json
agent-browser click @e2 # 点击
agent-browser fill @e3 "text" # 填入(先清空)
agent-browser type @e3 "text" # 追加输入
agent-browser hover @e4 # 悬停
agent-browser check @e5 # 勾选
agent-browser uncheck @e5 # 取消勾选
agent-browser select @e6 "value" # 选择下拉项
agent-browser press "Enter" # 按键
agent-browser scroll down 500 # 滚动
agent-browser drag @e7 @e8 # 拖拽
结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。
agent-browser get text @e1 --json # 获取文本
agent-browser get html @e2 --json # 获取 HTML
agent-browser get value @e3 --json # 获取输入值
agent-browser get attr @e4 "href" --json # 获取属性
agent-browser get title --json # 获取页面标题
agent-browser get url --json # 获取当前 URL
agent-browser get count ".item" --json # 统计元素数量
{
"success": true,
"data": {
"snapshot": "...",
"refs": {
"e1": {"role": "heading", "name": "示例标题"},
"e2": {"role": "button", "name": "提交"},
"e3": {"role": "textbox", "name": "邮箱"}
}
}
}
agent-browser wait @e2 # 等待元素出现
agent-browser wait 1000 # 等待毫秒
agent-browser wait --text "欢迎" # 等待文本出现
agent-browser wait --url "**/dashboard" # 等待 URL 匹配
agent-browser wait --load networkidle # 等待网络空闲
agent-browser wait --fn "window.ready === true"
# 保存登录态,跳过重复登录
agent-browser state save auth.json
agent-browser state load auth.json
agent-browser screenshot page.png
agent-browser screenshot --full page.png # 全页截图
agent-browser pdf page.pdf # 导出 PDF
agent-browser tab new https://example.com # 新建标签
agent-browser tab 2 # 切换到第2个标签
agent-browser frame @e5 # 进入 iframe
agent-browser frame main # 回到主框架
-i 参数:聚焦可交互元素,减少快照噪声。--json 参数:便于程序化解析输出。wait --load networkidle 避免竞态。state save/load 跳过重复登录流程。--session,避免上下文污染。--headed:可视化查看浏览器实际行为。close 释放资源。每次页面 DOM 变化后,之前获取的 ref 可能失效。解决方法是在每次交互前重新执行 snapshot -i --json,获取最新的 ref 映射。
wait --load networkidle)snapshot -s "#main" -i 限定范围frame @e5)# 重新安装内核
agent-browser install
# Linux 安装系统依赖
agent-browser install --with-deps
免费版面向个人开发者,提供核心浏览器自动化能力。如需企业级特性(批量任务调度、代理池管理、并发会话上限提升、监控告警等),请升级至 PRO 版。
# 使用有头模式查看浏览器
agent-browser --headed open https://example.com
# 截图查看当前状态
agent-browser screenshot debug.png
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| agent-browser | CLI 工具 | 必需 | npm install -g agent-browser |
| Chromium | 运行时 | 必需 | agent-browser install 自动下载 |
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| Node.js | 运行环境 | 必需 | 系统包管理器安装 |
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 通过环境变量配置,禁止硬编码到代码或配置文件中 |
| 命令执行风险 | 仅执行白名单命令,避免拼接用户输入到命令行参数中 |
| 网络通信安全 | 使用HTTPS协议,验证SSL证书有效性 |
| 敏感数据暴露 | 输出结果中不包含密钥、令牌等敏感信息 |
使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | 本技能 | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | 核心功能 | 通用场景 | 通用场景 |