基于 Rust 的快速无头浏览器自动化 CLI 工具,支持 Node.js 回退,使 AI 代理能够通过结构化指令导航、点击、输入和截取页面。
浏览器 自动 使用代理浏览器. npm 推荐
功能概述
浏览器 自动 使用代理浏览器. npm 推荐是一项面向实际任务的技能,主要用于from Source Qast start.;Core 工作流程;
核心要点
- Navigate: author- browser 打开 <url X Snapshot: author-browser shrapp -i(返回元素, 参考器类似)。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
使用 agent-browser 进行浏览器自动化
安装
推荐使用 npm
npm install -g agent-browser agent-browser install agent-browser install --with-deps
从源码构建
git clone https://github.com/vercel-labs/agent-browser cd agent-browser pnpm install pnpm build agent-browser install
快速开始
agent-browser open# 导航至页面 agent-browser snapshot -i # 获取带引用(refs)的可交互元素 agent-browser click @e1 # 通过引用点击元素 agent-browser fill @e2 "text" # 通过引用向输入框填充文本 agent-browser close # 关闭浏览器
核心工作流
- 导航:
agent-browser open - 快照:
agent-browser snapshot -i(返回带引用的元素,例如@e1、@e2) - 使用快照中生成的引用进行交互
- 在导航或发生显著 DOM 变更后重新执行快照
命令
导航
agent-browser open# 导航至指定 URL agent-browser back # 后退 agent-browser forward # 前进 agent-browser reload # 重新加载页面 agent-browser close # 关闭浏览器
快照(页面分析)
agent-browser snapshot # 输出完整可访问性树 agent-browser snapshot -i # 仅输出可交互元素(推荐) agent-browser snapshot -c # 精简输出格式 agent-browser snapshot -d 3 # 限制树深度为 3 agent-browser snapshot -s "#main" # 限定 CSS 选择器范围
交互操作(使用快照生成的 @refs)
agent-browser click @e1 # 点击 agent-browser dblclick @e1 # 双击 agent-browser focus @e1 # 聚焦元素 agent-browser fill @e2 "text" # 清空并输入文本 agent-browser type @e2 "text" # 输入文本(不清空原有内容) agent-browser press Enter # 按下回车键 agent-browser press Control+a # 组合键操作 agent-browser keydown Shift # 按住 Shift 键 agent-browser keyup Shift # 松开 Shift 键 agent-browser hover @e1 # 鼠标悬停 agent-browser check @e1 # 勾选复选框 agent-browser uncheck @e1 # 取消勾选复选框 agent-browser select @e1 "value" # 从下拉菜单中选择值 agent-browser scroll down 500 # 页面向下滚动 500 像素 agent-browser scrollintoview @e1 # 将元素滚动至可视区域 agent-browser drag @e1 @e2 # 拖拽元素(@e1 → @e2) agent-browser upload @e1 file.pdf # 上传文件
获取信息
agent-browser get text @e1 # 获取元素文本内容 agent-browser get html @e1 # 获取元素 innerHTML agent-browser get value @e1 # 获取输入框当前值 agent-browser get attr @e1 href # 获取元素指定属性(如 href) agent-browser get title # 获取页面标题 agent-browser get url # 获取当前 URL agent-browser get count ".item" # 统计匹配选择器的元素数量 agent-browser get box @e1 # 获取元素边界框(bounding box)
检查状态
agent-browser is visible @e1 # 检查是否可见 agent-browser is enabled @e1 # 检查是否启用 agent-browser is checked @e1 # 检查是否已勾选
截图与 PDF
agent-browser screenshot # 截图并输出到标准输出 agent-browser screenshot path.png # 保存截图至文件 agent-browser screenshot --full # 全页截图 agent-browser pdf output.pdf # 保存为 PDF 文件
视频录制
agent-browser record start ./demo.webm # 开始录制(使用当前 URL 和状态) agent-browser click @e1 # 执行操作 agent-browser record stop # 停止并保存视频 agent-browser record restart ./take2.webm # 停止当前录制并启动新录制
录制会创建一个全新的上下文,但保留您当前会话中的 cookies / storage。若未指定 URL,录制将自动跳转回当前页面。为获得流畅的演示效果,建议先探索页面,再开始录制。
等待
agent-browser wait @e1 # 等待元素出现 agent-browser wait 2000 # 等待指定毫秒数 agent-browser wait --text "Success" # 等待页面中出现指定文本 agent-browser wait --url "/dashboard" # 等待 URL 匹配指定模式 agent-browser wait --load networkidle # 等待网络空闲 agent-browser wait --fn "window.ready" # 等待 JavaScript 条件满足
鼠标控制
agent-browser mouse move 100 200 # 移动鼠标至坐标 (100, 200) agent-browser mouse down left # 按下鼠标左键 agent-browser mouse up left # 松开鼠标左键 agent-browser mouse wheel 100 # 向上滚动滚轮 100 单位
语义定位器(替代 refs 的方式)
agent-browser find role button click --name "Submit" agent-browser find text "Sign In" click agent-browser find label "Email" fill "user@test.com" agent-browser find first ".item" click agent-browser find nth 2 "a" text
浏览器设置
agent-browser set viewport 1920 1080 # 设置视口尺寸
agent-browser set device "iPhone 14" # 模拟设备
agent-browser set geo 37.7749 -122.4194 # 设置地理位置
agent-browser set offline on # 启用离线模式
agent-browser set headers '{"X-Key":"v"}' # 添加自定义 HTTP 请求头
agent-browser set credentials user pass # 设置 HTTP Basic Auth 凭据
agent-browser set media dark # 模拟深色主题
Cookies 与 Storage
agent-browser cookies # 获取全部 cookies agent-browser cookies set name value # 设置 cookie agent-browser cookies clear # 清空所有 cookies agent-browser storage local # 获取全部 localStorage 数据 agent-browser storage local key # 获取指定 localStorage key 的值 agent-browser storage local set k v # 设置 localStorage 中某 key 的值 agent-browser storage local clear # 清空全部 localStorage 数据
网络
agent-browser network route# 拦截请求 agent-browser network route --abort # 阻止请求 agent-browser network route --body '{}' # 模拟响应体 agent-browser network unroute [url] # 移除拦截规则 agent-browser network requests # 查看已追踪的请求列表 agent-browser network requests --filter api # 按关键词过滤请求
标签页与窗口
agent-browser tab # 列出所有标签页 agent-browser tab new [url] # 新建标签页(可选指定 URL) agent-browser tab 2 # 切换至第 2 个标签页 agent-browser tab close # 关闭当前标签页 agent-browser window new # 新建浏览器窗口
帧(Frames)
agent-browser frame "#iframe" # 切换至 iframe agent-browser frame main # 返回主文档(main frame)
对话框(Dialogs)
agent-browser dialog accept [text] # 接受对话框(可选填写输入文本) agent-browser dialog dismiss # 取消/关闭对话框
JavaScript
agent-browser eval "document.title" # 执行 JavaScript 表达式
状态管理
agent-browser state save auth.json # 保存当前会话状态 agent-browser state load auth.json # 加载已保存的状态
示例:表单提交
agent-browser open https://example.com/form agent-browser snapshot -i # 输出示例:文本框 "Email" [ref=e1],文本框 "Password" [ref=e2],按钮 "Submit" [ref=e3] agent-browser fill @e1 "user@example.com" agent-browser fill @e2 "password123" agent-browser click @e3 agent-browser wait --load networkidle agent-browser snapshot -i # 检查提交结果
示例:使用已保存状态进行身份验证
# 首次登录 agent-browser open https://app.example.com/login agent-browser snapshot -i agent-browser fill @e1 "username" agent-browser fill @e2 "password" agent-browser click @e3 agent-browser wait --url "/dashboard" agent-browser state save auth.json # 后续会话:加载已保存状态 agent-browser state load auth.json agent-browser open https://app.example.com/dashboard
会话(并行浏览器实例)
agent-browser --session test1 open site-a.com agent-browser --session test2 open site-b.com agent-browser session list
JSON 输出(便于程序解析)
添加 --json 参数以获得机器可读的 JSON 输出:
agent-browser snapshot -i --json agent-browser get text @e1 --json
调试
agent-browser open example.com --headed # 显示浏览器窗口 agent-browser console # 查看控制台日志 agent-browser console --clear # 清空控制台日志 agent-browser errors # 查看页面错误 agent-browser errors --clear # 清空错误日志 agent-browser highlight @e1 # 高亮指定元素 agent-browser trace start # 开始记录性能追踪(trace) agent-browser trace stop trace.zip # 停止并保存 trace 文件 agent-browser record start ./debug.webm # 从当前页面开始录制视频 agent-browser record stop # 保存录制视频 agent-browser --cdp 9222 snapshot # 通过 Chrome DevTools Protocol 连接
故障排查
- 若在 Linux ARM64 上提示命令未找到,请使用 bin 目录下的完整路径。
- 若找不到目标元素,请使用
snapshot命令确认其正确引用(ref)。 - 若页面尚未加载完成,请在导航命令后添加
wait命令。 - 调试时可使用
--headed参数显示浏览器窗口。
选项
--session:使用隔离的会话环境。--json:输出 JSON 格式结果。--full:执行全页截图。--headed:显示浏览器窗口。--timeout:设置命令超时时间(毫秒)。--cdp:通过 Chrome DevTools Protocol 连接指定端口。
注意事项
- 引用(refs)在单次页面加载期间保持稳定,但在导航后会失效并重新生成。
- 每次导航后都应调用
snapshot获取新的引用。 - 对输入字段请优先使用
fill而非type,以确保原有内容被清空。
问题反馈
- 功能相关问题:请在 https://github.com/TheSethRose/Agent-Browser-CLI 提交 issue
- agent-browser CLI 工具本身的问题:请在 https://github.com/vercel-labs/agent-browser 提交 issue
热门AI工具
相关专题
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
热门下载
相关下载
精品课程
最新文章