Browser Use — Autonomous Browser Automation
Two complementary tools for browser automation:
| Tool | Best for | How it works |
|---|
| agent-browser | Step-by-step control, scraping, form filling | CLI commands, you drive each action |
| browser-use |
Complex autonomous tasks | Python agent that decides actions itself |
Quick Start
agent-browser (recommended for most tasks)
CODEBLOCK0
browser-use (autonomous agent)
CODEBLOCK1
The agent will navigate, click, read pages, and return a structured result.
agent-browser — Full Reference
Navigation
CODEBLOCK2
Snapshot (page analysis)
CODEBLOCK3
Interactions (use @refs from snapshot)
CODEBLOCK4
Extract Data
CODEBLOCK5
Wait
CODEBLOCK6
Screenshots, PDF & Recording
CODEBLOCK7
Sessions (parallel browsers)
CODEBLOCK8
State (persist auth/cookies)
CODEBLOCK9
Cookies & Storage
CODEBLOCK10
Tabs & Frames
CODEBLOCK11
Browser Settings
CODEBLOCK12
JavaScript
CODEBLOCK13
browser-use — Autonomous Agent
For complex tasks where you want the agent to figure out the browsing steps:
CODEBLOCK14
Custom Script (advanced)
CODEBLOCK15
You can swap the LLM for any langchain-compatible model (OpenAI, Anthropic, etc).
Standard Workflow
CODEBLOCK16
Important Rules
- 1. Always
snapshot -i after navigation — refs change on every page load - Use
fill not type for inputs — fill clears existing text first - Wait after clicks that trigger navigation — INLINECODE3
- Close the browser when done — INLINECODE4
- Google/Bing block headless browsers (CAPTCHA) — use DuckDuckGo or
web_search instead - Save auth state for sites requiring login — INLINECODE6
- Use
--json when you need machine-parseable output - Use sessions for parallel browsing — INLINECODE8
Troubleshooting
- - Element not found: Re-run
snapshot -i to get current refs - Page not loaded: Add
wait --load networkidle after navigation - CAPTCHA on search engines: Use DuckDuckGo or the
web_search tool instead - Auth expired: Re-login and
state save again - Display errors: The install script sets up Xvfb for headless rendering
Browser Use — 自主浏览器自动化
两款互补的浏览器自动化工具:
| 工具 | 适用场景 | 工作原理 |
|---|
| agent-browser | 逐步控制、数据抓取、表单填写 | 命令行指令,由你驱动每一步操作 |
| browser-use |
复杂自主任务 | Python代理,自主决定操作步骤 |
快速上手
agent-browser(推荐用于大多数任务)
bash
导航与检查
agent-browser open https://example.com
agent-browser snapshot -i # 获取带@引用的交互元素
使用引用进行交互
agent-browser click @e3 # 点击元素
agent-browser fill @e2 文本 # 填写输入框(先清空)
agent-browser press Enter # 按下按键
提取数据
agent-browser get text @e1 # 获取元素文本
agent-browser get attr @e1 href # 获取属性
agent-browser screenshot /tmp/p.png # 截图
完成操作
agent-browser close
browser-use(自主代理)
bash
运行完整的自主浏览任务
browser-use-agent 查找Notion的定价并比较套餐
代理将自动导航、点击、阅读页面,并返回结构化结果。
agent-browser — 完整参考
导航
bash
agent-browser open
# 导航到URL
agent-browser back # 后退
agent-browser forward # 前进
agent-browser reload # 刷新页面
agent-browser close # 关闭浏览器
快照(页面分析)
bash
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 snapshot -i --json # JSON格式输出(便于解析)
交互(使用快照中的@引用)
bash
agent-browser click @e1 # 点击
agent-browser dblclick @e1 # 双击
agent-browser fill @e2 文本 # 清空并输入(用于输入框)
agent-browser type @e2 文本 # 直接输入(不清空)
agent-browser press Enter # 按下按键
agent-browser press Control+a # 组合键
agent-browser hover @e1 # 悬停
agent-browser check @e1 # 勾选复选框
agent-browser uncheck @e1 # 取消勾选复选框
agent-browser select @e1 值 # 选择下拉选项
agent-browser scroll down 500 # 滚动页面
agent-browser scrollintoview @e1 # 将元素滚动到视图中
agent-browser drag @e1 @e2 # 拖放操作
agent-browser upload @e1 file.pdf # 上传文件
提取数据
bash
agent-browser get text @e1 # 获取元素文本
agent-browser get html @e1 # 获取innerHTML
agent-browser get value @e1 # 获取输入值
agent-browser get attr @e1 href # 获取属性
agent-browser get title # 页面标题
agent-browser get url # 当前URL
agent-browser get count .item # 统计匹配元素数量
等待
bash
agent-browser wait @e1 # 等待元素出现
agent-browser wait 2000 # 等待毫秒数
agent-browser wait --text 完成 # 等待文本出现
agent-browser wait --url /dash # 等待URL模式
agent-browser wait --load networkidle # 等待网络空闲
截图、PDF与录制
bash
agent-browser screenshot path.png # 保存截图
agent-browser screenshot --full # 全页面截图
agent-browser pdf output.pdf # 保存为PDF
agent-browser record start ./demo.webm # 开始录制
agent-browser record stop # 停止并保存
会话(并行浏览器)
bash
agent-browser --session s1 open https://site1.com
agent-browser --session s2 open https://site2.com
agent-browser session list
状态(持久化认证/Cookie)
bash
agent-browser state save auth.json # 保存会话(Cookie、存储)
agent-browser state load auth.json # 恢复会话
Cookie与存储
bash
agent-browser cookies # 获取所有Cookie
agent-browser cookies set name value # 设置Cookie
agent-browser cookies clear # 清除Cookie
agent-browser storage local # 获取所有localStorage
agent-browser storage local set k v # 设置值
标签页与框架
bash
agent-browser tab # 列出标签页
agent-browser tab new [url] # 新建标签页
agent-browser tab 2 # 切换到标签页
agent-browser frame #iframe # 切换到iframe
agent-browser frame main # 返回主框架
浏览器设置
bash
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 media dark
JavaScript
bash
agent-browser eval document.title # 在页面上下文中运行JS
browser-use — 自主代理
适用于希望代理自行规划浏览步骤的复杂任务:
bash
browser-use-agent 在此处输入任务描述
自定义脚本(高级)
python
通过以下命令运行:/opt/browser-use/bin/python3 script.py
import asyncio, os
from browser_use import Agent, Browser
from langchain_anthropic import ChatAnthropic
async def run():
browser = Browser()
llm = ChatAnthropic(
model=claude-sonnet-4-20250514,
apikey=os.environ[ANTHROPICAPI_KEY]
)
agent = Agent(
task=比较3个竞争对手网站的定价,
llm=llm,
browser=browser,
)
result = await agent.run(max_steps=15)
await browser.close()
return result
asyncio.run(run())
你可以将LLM替换为任何兼容langchain的模型(OpenAI、Anthropic等)。
标准工作流程
bash
1. 打开页面
agent-browser open https://example.com
2. 快照查看页面内容
agent-browser snapshot -i
3. 使用快照中的@引用与元素交互
agent-browser fill @e1 搜索关键词
agent-browser click @e2
4. 等待新页面加载
agent-browser wait --load networkidle
5. 重新快照(导航后引用会变化!)
agent-browser snapshot -i
6. 提取所需内容
agent-browser get text @e5
7. 完成后关闭
agent-browser close
重要规则
- 1. 导航后务必执行 snapshot -i — 每次页面加载引用都会变化
- 输入框使用 fill 而非 type — fill会先清空现有文本
- 点击触发导航后需等待 — wait --load networkidle
- 完成后关闭浏览器 — agent-browser close
- 谷歌/必应会拦截无头浏览器(验证码)— 改用DuckDuckGo或web_search
- 保存需要登录的网站认证状态 — state save/load
- 需要机器可解析输出时使用 --json
- 并行浏览使用会话 — --session <名称>
故障排除
- - 元素未找到:重新运行 snapshot -i 获取当前引用
- 页面未加载:导航后添加 wait --load networkidle
- 搜索引擎验证码:改用DuckDuckGo或web_search工具
- 认证过期:重新登录并再次执行 state save
- 显示错误:安装脚本已配置Xvfb用于无头渲染