浏览器自动化工具Skill browser-use

browser-use 是一个快速、持久的浏览器自动化命令行工具,用于自动化网页导航、交互、测试、数据提取和截图等功能,支持多种浏览器模式、云配置和AI代理任务,适用于开发、测试和数据采集场景。关键词:浏览器自动化、网页测试、数据提取、CLI、AI智能体、云配置、Chrome扩展、Cookie管理。

测试 0 次安装 0 次浏览 更新于 3/15/2026

名称: 浏览器使用 描述: 自动化浏览器交互,用于网页测试、表单填写、截图和数据提取。当用户需要导航网站、交互网页、填写表单、截图或从网页提取信息时使用。也用于询问无法通过API轻松找到的信息(例如,火车票、航班价格、酒店价格等)。 允许工具: Bash(browser-use:*)

浏览器自动化与 browser-use CLI

browser-use 命令提供快速、持久的浏览器自动化。它维护跨命令的浏览器会话,支持复杂的多步工作流。

安装

# 运行无需安装(推荐一次性使用)
uvx "browser-use[cli]" open https://example.com

# 或永久安装
uv pip install "browser-use[cli]"

# 安装浏览器依赖(Chromium)
browser-use install

快速开始

默认行为:以无头模式运行(无可见浏览器窗口)。使用 --headed 标志显示可见窗口。

browser-use open https://example.com           # 导航到URL(默认无头)

browser-use --headed open https://example.com  # 打开可见浏览器窗口
browser-use state                              # 获取页面元素及其索引
browser-use click 5                            # 按索引点击元素
browser-use type "Hello World"                 # 输入文本
browser-use screenshot                         # 截图
browser-use close                              # 关闭浏览器

核心工作流

  1. 导航browser-use open <url> - 打开URL(如果需要则启动浏览器)
  2. 检查browser-use state - 返回可点击元素及其索引
  3. 交互:使用状态中的索引进行交互(browser-use click 5browser-use input 3 "text"
  4. 验证browser-use statebrowser-use screenshot 以确认操作
  5. 重复:浏览器在命令之间保持打开状态

浏览器模式

无头 vs 可见:默认情况下,browser-use 以无头模式运行(无可见窗口)。添加 --headed 标志以显示可见浏览器窗口。

browser-use --browser chromium open <url>      # 无头Chromium(默认 - 无窗口)
browser-use --browser chromium --headed open <url>  # 可见Chromium窗口
browser-use --browser real open <url>          # 用户的实际Chrome(可见窗口,带登录会话)
browser-use --browser remote open <url>        # 云浏览器(需要API密钥)
  • chromium:快速、隔离,默认无头(无可见窗口)。使用 --headed 显示窗口。
  • real:使用您的实际Chrome浏览器(始终可见),带cookie、扩展、登录会话
  • remote:云托管浏览器,支持代理(需要 BROWSER_USE_API_KEY)

命令

导航

browser-use open <url>                    # 导航到URL
browser-use back                          # 后退历史
browser-use scroll down                   # 向下滚动
browser-use scroll up                     # 向上滚动

页面状态

browser-use state                         # 获取URL、标题和可点击元素
browser-use screenshot                    # 截图(输出base64)
browser-use screenshot path.png           # 保存截图到文件
browser-use screenshot --full path.png    # 全页截图

交互(使用 browser-use state 中的索引)

browser-use click <index>                 # 点击元素
browser-use type "text"                   # 输入文本到聚焦元素
browser-use input <index> "text"          # 点击元素,然后输入文本
browser-use keys "Enter"                  # 发送键盘按键
browser-use keys "Control+a"              # 发送按键组合
browser-use select <index> "option"       # 选择下拉选项

标签管理

browser-use switch <tab>                  # 按索引切换到标签
browser-use close-tab                     # 关闭当前标签
browser-use close-tab <tab>               # 关闭特定标签

JavaScript 与数据

browser-use eval "document.title"         # 执行JavaScript,返回结果
browser-use extract "all product prices"  # 使用LLM提取数据(需要API密钥)

Cookie

browser-use cookies get                   # 获取所有cookie
browser-use cookies get --url <url>       # 获取特定URL的cookie
browser-use cookies set <name> <value>    # 设置cookie
browser-use cookies set name val --domain .example.com --secure --http-only
browser-use cookies clear                 # 清除所有cookie
browser-use cookies clear --url <url>     # 清除特定URL的cookie
browser-use cookies export <file>         # 导出所有cookie到JSON文件
browser-use cookies export <file> --url <url>  # 导出特定URL的cookie
browser-use cookies import <file>         # 从JSON文件导入cookie

等待条件

browser-use wait selector "h1"            # 等待元素可见
browser-use wait selector ".loading" --state hidden  # 等待元素消失
browser-use wait selector "#btn" --state attached    # 等待元素在DOM中
browser-use wait text "Success"           # 等待文本出现
browser-use wait selector "h1" --timeout 5000  # 自定义超时(毫秒)

额外交互

browser-use hover <index>                 # 悬停元素(触发CSS :hover)
browser-use dblclick <index>              # 双击元素
browser-use rightclick <index>            # 右键点击元素(上下文菜单)

信息检索

browser-use get title                     # 获取页面标题
browser-use get html                      # 获取完整页面HTML
browser-use get html --selector "h1"      # 获取特定元素的HTML
browser-use get text <index>              # 获取元素的文本内容
browser-use get value <index>             # 获取输入/文本区域的值
browser-use get attributes <index>        # 获取元素的所有属性
browser-use get bbox <index>              # 获取边界框(x, y, 宽度, 高度)

Python 执行(持久会话)

browser-use python "x = 42"               # 设置变量
browser-use python "print(x)"             # 访问变量(输出:42)
browser-use python "print(browser.url)"   # 访问浏览器对象
browser-use python --vars                 # 显示定义的变量
browser-use python --reset                # 清除Python命名空间
browser-use python --file script.py       # 执行Python文件

Python 会话在命令之间维护状态。browser 对象提供:

  • browser.url - 当前页面URL
  • browser.title - 页面标题
  • browser.goto(url) - 导航
  • browser.click(index) - 点击元素
  • browser.type(text) - 输入文本
  • browser.screenshot(path) - 截图
  • browser.scroll() - 滚动页面
  • browser.html - 获取页面HTML

代理任务(需要API密钥)

browser-use run "填充联系表单测试数据"    # 运行AI代理
browser-use run "提取所有产品价格" --max-steps 50

代理任务使用LLM自主完成复杂的浏览器任务。需要 BROWSER_USE_API_KEY 或配置的LLM API密钥(OPENAI_API_KEY, ANTHROPIC_API_KEY 等)。

会话管理

browser-use sessions                      # 列出活动会话
browser-use close                         # 关闭当前会话
browser-use close --all                   # 关闭所有会话

配置文件管理

browser-use profile list-local            # 列出本地Chrome配置文件

在打开真实浏览器(--browser real)之前,始终询问用户是否要使用特定Chrome配置文件或无配置文件。使用 profile list-local 显示可用配置文件:

browser-use profile list-local
# 输出:Default: Person 1 (user@gmail.com)
#         Profile 1: Work (work@company.com)

# 使用特定配置文件(有该配置文件的cookie/登录)
browser-use --browser real --profile "Profile 1" open https://gmail.com

# 无配置文件(新鲜浏览器,无现有登录)
browser-use --browser real open https://gmail.com

# 无头模式(无可见窗口)- 用于cookie导出
browser-use --browser real --profile "Default" cookies export /tmp/cookies.json

每个Chrome配置文件有自己的cookie、历史和登录会话。选择正确的配置文件决定网站是否预认证。

云配置文件

云配置文件在Browser-Use Cloud中存储浏览器状态(cookie),跨会话持久化。需要 BROWSER_USE_API_KEY

browser-use profile list                      # 列出云配置文件
browser-use profile get <id>                  # 获取配置文件详情
browser-use profile update <id> --name "New"  # 重命名配置文件
browser-use profile delete <id>               # 删除配置文件

使用云配置文件与 --browser remote --profile <id>

browser-use --browser remote --profile abc-123 open https://example.com

同步Cookie到云

⚠️ 重要:在将本地浏览器cookie同步到云之前,代理必须

  1. 询问用户使用哪个本地Chrome配置文件(browser-use profile list-local
  2. 询问同步哪些域名 - 不要默认同步完整配置文件
  3. 继续前确认

默认行为:为每个域名同步创建一个新的云配置文件。这确保cookie的清晰分离。用户可以根据需要添加cookie到现有配置文件。

步骤1:列出可用配置文件和cookie

# 列出本地Chrome配置文件
browser-use profile list-local
# → Default: Person 1 (user@gmail.com)
# → Profile 1: Work (work@company.com)

# 查看配置文件中的cookie
browser-use profile cookies "Default"
# → youtube.com: 23
# → google.com: 18
# → github.com: 2

步骤2:同步cookie(三个控制级别)

1. 域名特定同步(推荐默认)

browser-use profile sync --from "Default" --domain youtube.com
# 创建新云配置文件:"Chrome - Default (youtube.com)"
# 仅同步youtube.com的cookie

这是推荐方法 - 仅同步您需要的cookie。

2. 完整配置文件同步(谨慎使用)

browser-use profile sync --from "Default"
# 同步配置文件的所有cookie

⚠️ 警告:这同步所有cookie,包括敏感数据、追踪cookie、每个网站的会话令牌等。仅当用户明确需要整个浏览器状态时使用。

3. 细粒度控制(高级)

# 导出cookie到文件
browser-use --browser real --profile "Default" cookies export /tmp/cookies.json

# 手动编辑JSON以保留特定cookie

# 导入到云配置文件
browser-use --browser remote --profile <id> cookies import /tmp/cookies.json

适用于需要逐个cookie控制的用户。

步骤3:使用同步的配置文件

browser-use --browser remote --profile <id> open https://youtube.com

添加cookie到现有配置文件

# 同步额外域名到现有配置文件
browser-use --browser real --profile "Default" cookies export /tmp/cookies.json
browser-use --browser remote --profile <existing-id> cookies import /tmp/cookies.json

管理配置文件

browser-use profile update <id> --name "New Name"  # 重命名
browser-use profile delete <id>                    # 删除

服务器控制

browser-use server status                 # 检查服务器是否运行
browser-use server stop                   # 停止服务器
browser-use server logs                   # 查看服务器日志

设置

browser-use install                       # 安装Chromium和系统依赖

全局选项

选项 描述
--session NAME 使用命名会话(默认:“default”)
--browser MODE 浏览器模式:chromium, real, remote
--headed 显示浏览器窗口(chromium模式)
--profile NAME Chrome配置文件(仅real模式)
--json 输出为JSON
--api-key KEY 覆盖API密钥

会话行为:所有无 --session 的命令使用相同的"default"会话。浏览器保持打开并在命令之间重用。使用 --session NAME 并行运行多个浏览器。

API密钥配置

某些功能(runextract--browser remote)需要API密钥。CLI按顺序检查这些位置:

  1. --api-key 命令行标志
  2. BROWSER_USE_API_KEY 环境变量
  3. ~/.config/browser-use/config.json 文件

永久配置:

mkdir -p ~/.config/browser-use
echo '{"api_key": "your-key-here"}' > ~/.config/browser-use/config.json

示例

表单提交

browser-use open https://example.com/contact
browser-use state
# 显示:[0] 输入 "Name", [1] 输入 "Email", [2] 文本区域 "Message", [3] 按钮 "Submit"
browser-use input 0 "John Doe"
browser-use input 1 "john@example.com"
browser-use input 2 "Hello, this is a test message."
browser-use click 3
browser-use state  # 验证成功

多会话工作流

browser-use --session work open https://work.example.com
browser-use --session personal open https://personal.example.com
browser-use --session work state    # 检查工作会话
browser-use --session personal state  # 检查个人会话
browser-use close --all             # 关闭两个会话

数据提取与Python

browser-use open https://example.com/products
browser-use python "
products = []
for i in range(20):
    browser.scroll('down')
browser.screenshot('products.png')
"
browser-use python "print(f'Captured {len(products)} products')"

使用真实浏览器(登录会话)

browser-use --browser real open https://gmail.com
# 使用您的实际Chrome,带现有登录会话
browser-use state  # 已经登录!

提示

  1. 始终先运行 browser-use state 查看可用元素及其索引
  2. 使用 --headed 调试 查看浏览器操作
  3. 会话持久 - 浏览器在命令之间保持打开
  4. 使用 --json 解析 程序化输出
  5. Python变量持久browser-use python 命令在会话内
  6. 真实浏览器模式 保留您的登录会话和扩展
  7. CLI别名bubrowserbrowserusebrowser-use 工作相同

故障排除

浏览器无法启动?

browser-use install                   # 安装/重新安装Chromium
browser-use server stop               # 停止任何卡住的服务器
browser-use --headed open <url>       # 尝试可见窗口

元素未找到?

browser-use state                     # 检查当前元素
browser-use scroll down               # 元素可能在下面
browser-use state                     # 再次检查

会话问题?

browser-use sessions                  # 检查活动会话
browser-use close --all               # 清理状态
browser-use open <url>                # 重新开始

清理

完成后始终关闭浏览器。 完成浏览器自动化后运行:

browser-use close