基于 Rust 的快速无头浏览器自动化 CLI 工具,支持 Node.js 回退,使 AI 代理能够通过结构化指令导航、点击、输入和截取页面。
浏览器 自动 使用代理浏览器. npm 推荐是一项面向实际任务的技能,主要用于from Source Qast start.;Core 工作流程;
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
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)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 选择器限定作用域
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 # 拖拽元素 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 # 检查是否已勾选
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 单位
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 # 模拟深色主题
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 # 获取指定 key 的 localStorage 值 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 # 新建窗口
agent-browser frame "#iframe" # 切换至指定 iframe agent-browser frame main # 切换回主文档(main frame)
agent-browser dialog accept [text] # 接受对话框(可选填写文本) agent-browser dialog dismiss # 取消/关闭对话框
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 格式输出:
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 # 停止追踪并保存为 ZIP 文件 agent-browser record start ./debug.webm # 从当前页面开始录制视频 agent-browser record stop # 停止录制并保存 agent-browser --cdp 9222 snapshot # 通过 Chrome DevTools Protocol 连接
snapshot 命令确认正确的引用(ref)。wait 命令。--headed 参数显示浏览器窗口。--session :使用隔离的会话。--json:输出 JSON 格式结果。--full:执行全页截图。--headed:显示浏览器窗口。--timeout:设置命令超时时间(毫秒)。--cdp :通过 Chrome DevTools Protocol 连接指定端口。snapshot 以获取最新 refs。fill 而非 type,以确保清除已有内容。