wang

Polar Sponsor
爱发电 赞助
.NET 9.0

基于 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             # 关闭浏览器

核心工作流

  1. 导航:agent-browser open
  2. 快照:agent-browser snapshot -i(返回带引用的元素,例如 @e1、@e2)
  3. 使用快照中生成的引用进行交互
  4. 在导航或发生显著 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       # 获取 input 元素的当前值
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          # 截图并输出到 stdout
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      # 等待网络空闲(network idle)
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         # 向上滚动滚轮(正值为向上)

语义定位器(替代 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 中的键值对
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(通过 CSS 选择器)
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
# 输出示例:textbox "Email" [ref=e1], textbox "Password" [ref=e2], button "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              # 显示浏览器窗口(GUI 模式)
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 连接远程调试端口

常见问题排查

  • 若在 Linux ARM64 平台上提示命令未找到,请使用 bin 目录下的完整路径调用。
  • 若元素未被找到,请使用 snapshot 命令确认其正确的引用(ref)。
  • 若页面尚未加载完成,请在导航命令后添加 wait 命令。
  • 调试时请使用 --headed 参数显式打开浏览器窗口。

选项说明

  • --session :使用隔离的会话(session)运行命令。
  • --json:以 JSON 格式输出结果,便于脚本解析。
  • --full:执行全页截图(而非仅可视区域)。
  • --headed:显示浏览器 GUI 窗口(默认为无头模式)。
  • --timeout:设置命令超时时间(单位:毫秒)。
  • --cdp :通过指定端口连接 Chrome DevTools Protocol(CDP)进行调试。

注意事项

  • 引用(refs)在单次页面加载期间保持稳定,但在导航后会失效并发生变化。
  • 每次导航后都应重新执行 snapshot 以获取最新的元素引用。
  • 对于输入框等字段,建议始终使用 fill 而非 type,以确保已有内容被清空。

问题反馈

  • 功能层面的问题(如能力缺失、设计缺陷等):请前往 https://github.com/TheSethRose/Agent-Browser-CLI 提交 issue。
  • agent-browser CLI 工具本身的问题(如命令报错、安装失败等):请前往 https://github.com/vercel-labs/agent-browser 提交 issue。

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习