Agent Browser
一个快速的基于Rust的无头浏览器自动化CLI,带有Node.js备用方案,使AI代理能够通过结构化命令导航、点击、输入和快照页面。
安装
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 example.com
agent-browser snapshot
agent-browser click @e2
agent-browser fill @e3 "test@example.com"
agent-browser get text @e1
agent-browser screenshot page.png
agent-browser close
使用真实的Chrome配置文件(适用于OAuth/登录会话)
对于需要Google/Discord等登录的网站(如star-swap.com):
方法1:使用自定义配置文件启动Chrome,通过CDP连接
# 终端1:使用您的真实配置文件和远程调试启动Chrome
google-chrome --remote-debugging-port=9222 --user-data-dir=/home/willr/.config/google-chrome/Default &
# 终端2:将agent-browser连接到该Chrome实例
agent-browser --cdp 9222 open "https://star-swap.com"
agent-browser --cdp 9222 snapshot -i
agent-browser --cdp 9222 click e2
# 这将重用您现有的Google会话 - 不需要重新登录!
# 适用于:Google OAuth,Discord OAuth,任何您在Chrome中登录的网站
方法2:会话持久性(首次手动登录)
# 第一次:有头模式,手动登录
agent-browser --headed --session starswap open "https://star-swap.com"
# 在浏览器窗口中手动完成Google OAuth
# 完成后关闭
# 未来运行:cookies持久存在!
agent-browser --session starswap open "https://star-swap.com"
# 自动登录
am.will.ryan Chrome配置文件: /home/willr/.config/google-chrome/Default
核心命令
导航
agent-browser open <url>
agent-browser back
agent-browser forward
agent-browser reload
交互
agent-browser click <sel>
agent-browser dblclick <sel>
agent-browser focus <sel>
agent-browser type <sel> <text>
agent-browser fill <sel> <text>
agent-browser clear <sel>
agent-browser press <key>
agent-browser keydown <key>
agent-browser keyup <key>
agent-browser hover <sel>
agent-browser select <sel> <val>
agent-browser check <sel>
agent-browser uncheck <sel>
agent-browser drag <src> <tgt>
agent-browser upload <sel> <files>
提取和信息
agent-browser snapshot
agent-browser get text <sel>
agent-browser get html <sel>
agent-browser get value <sel>
agent-browser get attr <sel> <attr>
agent-browser get title
agent-browser get url
agent-browser get count <sel>
agent-browser get box <sel>
agent-browser screenshot [path]
agent-browser pdf <path>
检查状态
agent-browser is visible <sel>
agent-browser is enabled <sel>
agent-browser is checked <sel>
查找元素
- agent-browser find role <role> <action> [value]
- agent-browser find text <text> <action>
- agent-browser find label <label> <action> [value]
- agent-browser find placeholder <ph> <action> [value]
- agent-browser find alt <text> <action>
- agent-browser find title <text> <action>
- agent-browser find testid <id> <action> [value]
操作包括点击、填充、检查、悬停和文本。
等待和定时
agent-browser wait <selector>
agent-browser wait <ms>
agent-browser wait --text "Welcome"
agent-browser wait --url "**/dash"
agent-browser wait --load networkidle
高级控制
agent-browser scroll <dir> [px]
agent-browser scrollintoview <sel>
agent-browser eval <js>
agent-browser mouse move <x> <y>
agent-browser cookies
agent-browser storage local
agent-browser tab new [url]
agent-browser frame <sel>
agent-browser dialog accept [text]
会话
运行多个隔离的浏览器实例。
agent-browser --session agent1 open site-a.com
agent-browser --session agent2 open site-b.com
快照选项
快照命令支持过滤以减少输出大小。
- agent-browser snapshot -i
- agent-browser snapshot -c
- agent-browser snapshot -d 3
- agent-browser snapshot -s “#main”
选择器和引用
引用提供从快照中确定性选择元素。使用@ref语法。
agent-browser snapshot
agent-browser click @e2
代理模式
使用–json获得机器可读输出。
agent-browser snapshot --json
优化的AI工作流程
- 使用agent-browser open <url>导航
- 使用agent-browser snapshot -i --json观察
- 使用快照中的@ref操作
- 使用agent-browser snapshot验证
故障排除
- 如果在Linux ARM64上找不到命令,请使用bin文件夹中的完整路径。
- 如果找不到元素,请使用快照找到正确的引用。
- 如果页面未加载,请在导航后添加等待命令。
- 使用–headed查看浏览器窗口以进行调试。
选项
- –session <name>使用隔离的会话。
- –json提供JSON输出。
- –full获取全页面截图。
- –headed显示浏览器窗口。
- –timeout设置命令超时时间(毫秒)。
注释
- 引用在每次页面加载时是稳定的,但在导航时会更改。
- 导航后总是快照以获取新的引用。
- 对于输入字段,请使用fill而不是type以确保清除现有文本。