Install
openclaw skills install @thcjp/browser-agent-tool-freeopenclaw skills install @thcjp/browser-agent-tool-free本工具是一个无头浏览器自动化命令行工具,通过可访问性树(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命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "浏览器智能代理工具-免费版处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "browser agent"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}