🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx skills add https://github.com/browser-use/browser-use --skill browser-use

💡 提示:需要 Node.js 和 NPM

使用 browser-use CLI 进行浏览器自动化

browser-use 命令提供快速、持久的浏览器自动化。它在命令之间保持浏览器会话,从而实现复杂的多步骤工作流。

先决条件

在使用此技能之前,必须安装和配置 browser-use。运行诊断以验证:

browser-use doctor

更多信息,请参阅 https://github.com/browser-use/browser-use/blob/main/browser_use/skill_cli/README.md

核心工作流程

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

浏览器模式

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 real --profile "Default" open <url>  # 带有您登录会话的真实 Chrome
browser-use --browser remote open <url>        # 云端浏览器
  • chromium: 快速、隔离,默认无头
  • real: 使用真实的 Chrome 二进制文件。不使用 --profile 时,使用位于 ~/.config/browseruse/profiles/cli/ 的持久但空的 CLI 配置文件。使用 --profile "ProfileName" 时,复制您实际的 Chrome 配置文件(cookies、登录信息、扩展)
  • remote: 云托管浏览器,支持代理

基本命令

# 导航
browser-use open <url>                    # 导航到 URL
browser-use back                          # 返回
browser-use scroll down                   # 向下滚动(--amount N 指定像素)

# 页面状态(始终先运行 state 以获取元素索引)
browser-use state                         # 获取 URL、标题、可点击元素
browser-use screenshot                    # 截取屏幕截图(base64)
browser-use screenshot 路径.png            # 保存屏幕截图到文件

# 交互(使用 state 中的索引)
browser-use click <索引>                 # 点击元素
browser-use type "文本"                   # 在焦点元素中输入文本
browser-use input <索引> "文本"          # 点击元素,然后输入文本
browser-use keys "Enter"                  # 发送键盘按键
browser-use select <索引> "选项"       # 选择下拉选项

# 数据提取
browser-use eval "document.title"         # 执行 JavaScript
browser-use get text <索引>              # 获取元素文本
browser-use get html --selector "h1"      # 获取限定范围的 HTML

# 等待
browser-use wait selector "h1"            # 等待元素出现
browser-use wait text "Success"           # 等待文本出现

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

# AI 代理
browser-use -b remote run "任务"          # 在云端运行代理(默认异步)
browser-use task status <id>              # 检查云端任务进度

命令

导航与标签页

browser-use open <url>                    # 导航到 URL
browser-use back                          # 返回历史记录
browser-use scroll down                   # 向下滚动
browser-use scroll up                     # 向上滚动
browser-use scroll down --amount 1000     # 按指定像素滚动(默认:500)
browser-use switch <标签页>                  # 按索引切换到标签页
browser-use close-tab                     # 关闭当前标签页
browser-use close-tab <标签页>              # 关闭特定标签页

页面状态

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

交互

browser-use click <索引>                 # 点击元素
browser-use type "文本"                   # 在焦点元素中输入文本
browser-use input <索引> "文本"          # 点击元素,然后输入文本
browser-use keys "Enter"                  # 发送键盘按键
browser-use keys "Control+a"              # 发送组合键
browser-use select <索引> "选项"       # 选择下拉选项
browser-use hover <索引>                 # 悬停在元素上(触发 CSS :hover)
browser-use dblclick <索引>              # 双击元素
browser-use rightclick <索引>            # 右键单击元素(上下文菜单)

使用来自 browser-use state 的索引。

JavaScript 与数据

browser-use eval "document.title"         # 执行 JavaScript,返回结果
browser-use get title                     # 获取页面标题
browser-use get html                      # 获取完整页面 HTML
browser-use get html --selector "h1"      # 获取特定元素的 HTML
browser-use get text <索引>              # 获取元素的文本内容
browser-use get value <索引>             # 获取输入框/文本区域的值
browser-use get attributes <索引>        # 获取元素的所有属性
browser-use get bbox <索引>              # 获取边界框(x, y, width, height)

Cookies

browser-use cookies get                   # 获取所有 cookies
browser-use cookies get --url <url>       # 获取特定 URL 的 cookies
browser-use cookies set <名称> <值>    # 设置一个 cookie
browser-use cookies set 名称 值 --domain .example.com --secure --http-only
browser-use cookies set 名称 值 --same-site Strict  # SameSite: Strict, Lax, 或 None
browser-use cookies set 名称 值 --expires 1735689600  # 过期时间戳
browser-use cookies clear                 # 清除所有 cookies
browser-use cookies clear --url <url>     # 清除特定 URL 的 cookies
browser-use cookies export <文件>         # 将所有 cookies 导出到 JSON 文件
browser-use cookies export <文件> --url <url>  # 导出特定 URL 的 cookies
browser-use cookies import <文件>         # 从 JSON 文件导入 cookies

等待条件

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  # 自定义超时时间(毫秒)

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 脚本.py       # 执行 Python 文件

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

  • browser.url, browser.title, browser.html — 页面信息
  • browser.goto(url), browser.back() — 导航
  • browser.click(index), browser.type(text), browser.input(index, text), browser.keys(keys) — 交互
  • browser.screenshot(path), browser.scroll(direction, amount) — 视觉
  • browser.wait(seconds), browser.extract(query) — 工具

代理任务

远程模式选项

使用 --browser remote 时,还有其他选项:

# 指定 LLM 模型
browser-use -b remote run "任务" --llm gpt-4o
browser-use -b remote run "任务" --llm claude-sonnet-4-20250514

# 代理配置(默认:us)
browser-use -b remote run "任务" --proxy-country uk

# 会话复用
browser-use -b remote run "任务 1" --keep-alive        # 任务后保持会话活动
browser-use -b remote run "任务 2" --session-id abc-123 # 复用现有会话

# 执行模式
browser-use -b remote run "任务" --flash       # 快速执行模式
browser-use -b remote run "任务" --wait        # 等待完成(默认:异步)

# 高级选项
browser-use -b remote run "任务" --thinking    # 扩展推理模式
browser-use -b remote run "任务" --no-vision   # 禁用视觉(默认启用)

# 使用云端配置文件(先创建会话,然后使用 --session-id 运行)
browser-use session create --profile <云端配置文件-id> --keep-alive
# → 返回 session_id
browser-use -b remote run "任务" --session-id <会话-id>

# 任务配置
browser-use -b remote run "任务" --start-url https://example.com  # 从特定 URL 开始
browser-use -b remote run "任务" --allowed-domain example.com     # 限制导航(可重复)
browser-use -b remote run "任务" --metadata key=value             # 任务元数据(可重复)
browser-use -b remote run "任务" --skill-id skill-123             # 启用技能(可重复)
browser-use -b remote run "任务" --secret key=value               # 秘密元数据(可重复)

# 结构化输出和评估
browser-use -b remote run "任务" --structured-output '{"type":"object"}'  # 输出的 JSON 模式
browser-use -b remote run "任务" --judge                 # 启用评估模式
browser-use -b remote run "任务" --judge-ground-truth "预期答案"

任务管理

browser-use task list                     # 列出最近的任务
browser-use task list --limit 20          # 显示更多任务
browser-use task list --status finished   # 按状态过滤(finished, stopped)
browser-use task list --session <id>      # 按会话 ID 过滤
browser-use task list --json              # JSON 输出

browser-use task status <任务-id>         # 获取任务状态(仅最新步骤)
browser-use task status <任务-id> -c      # 所有步骤及推理
browser-use task status <任务-id> -v      # 所有步骤及 URL + 动作
browser-use task status <任务-id> --last 5  # 仅最后 N 步
browser-use task status <任务-id> --step 3  # 特定步骤号
browser-use task status <任务-id> --reverse # 最新的在前

browser-use task stop <任务-id>           # 停止运行中的任务
browser-use task logs <任务-id>           # 获取任务执行日志

云端会话管理

browser-use session list                  # 列出云端会话
browser-use session list --limit 20       # 显示更多会话
browser-use session list --status active  # 按状态过滤
browser-use session list --json           # JSON 输出

browser-use session get <会话-id>      # 获取会话详情 + 实时 URL
browser-use session get <会话-id> --json

browser-use session stop <会话-id>     # 停止一个会话
browser-use session stop --all            # 停止所有活动会话

browser-use session create                          # 使用默认设置创建
browser-use session create --profile <id>           # 使用云端配置文件
browser-use session create --proxy-country uk       # 使用地理代理
browser-use session create --start-url https://example.com
browser-use session create --screen-size 1920x1080
browser-use session create --keep-alive
browser-use session create --persist-memory

browser-use session share <会话-id>              # 创建公开分享 URL
browser-use session share <会话-id> --delete     # 删除公开分享

隧道

browser-use tunnel <端口>           # 启动隧道(返回 URL)
browser-use tunnel <端口>           # 幂等 - 返回现有 URL
browser-use tunnel list             # 显示活动隧道
browser-use tunnel stop <端口>      # 停止隧道
browser-use tunnel stop --all       # 停止所有隧道

会话管理

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

配置文件管理

本地 Chrome 配置文件(--browser real

browser-use -b real profile list          # 列出本地 Chrome 配置文件
browser-use -b real profile cookies "Default"  # 显示配置文件中的 cookie 域名

云端配置文件(--browser remote

browser-use -b remote profile list            # 列出云端配置文件
browser-use -b remote profile list --page 2 --page-size 50
browser-use -b remote profile get <id>        # 获取配置文件详情
browser-use -b remote profile create          # 创建新的云端配置文件
browser-use -b remote profile create --name "我的配置文件"
browser-use -b remote profile update <id> --name "新名称"
browser-use -b remote profile delete <id>

同步

browser-use profile sync --from "Default" --domain github.com  # 特定域名
browser-use profile sync --from "Default"                      # 完整配置文件
browser-use profile sync --from "Default" --name "自定义名称" # 自定义名称

服务器控制

browser-use server logs                   # 查看服务器日志

常见工作流程

暴露本地开发服务器

当您有本地开发服务器并需要云端浏览器访问它时使用。

核心工作流程: 启动开发服务器 → 创建隧道 → 远程访问隧道 URL。

# 1. 启动您的开发服务器
npm run dev &  # localhost:3000

# 2. 通过 Cloudflare 隧道暴露它
browser-use tunnel 3000
# → url: https://abc.trycloudflare.com

# 3. 现在云端浏览器可以访问您的本地服务器
browser-use --browser remote open https://abc.trycloudflare.com
browser-use state
browser-use screenshot

注意: 隧道独立于浏览器会话。它们在 browser-use close 后持续存在,可以单独管理。必须安装 Cloudflared — 运行 browser-use doctor 检查。

使用配置文件进行已认证浏览

当任务需要浏览用户已登录的网站时使用(例如 Gmail、GitHub、内部工具)。

核心工作流程: 检查现有配置文件 → 询问用户使用哪个配置文件和浏览器模式 → 使用该配置文件浏览。如果没有合适的配置文件,才同步 cookies。

在浏览需要认证的网站之前,代理必须:

  1. 询问用户使用 real(本地 Chrome)还是 remote(云端)浏览器
  2. 列出该模式的可用配置文件
  3. 询问使用哪个配置文件
  4. 如果没有配置文件包含正确的 cookies,提供同步选项(见下文)

步骤 1:检查现有配置文件

# 选项 A:本地 Chrome 配置文件(--browser real)
browser-use -b real profile list
# → Default: 人 1 (user@gmail.com)
# → Profile 1: 工作 (work@company.com)

# 选项 B:云端配置文件(--browser remote)
browser-use -b remote profile list
# → abc-123: "Chrome - Default (github.com)"
# → def-456: "工作配置文件"

步骤 2:使用选定的配置文件浏览

# 真实浏览器 — 使用带有现有登录会话的本地 Chrome
browser-use --browser real --profile "Default" open https://github.com

# 云端浏览器 — 使用带有同步 cookies 的云端配置文件
browser-use --browser remote --profile abc-123 open https://github.com

用户已经认证 — 无需登录。

注意: 云端配置文件 cookies 可能会随时间过期。如果认证失败,从本地 Chrome 配置文件重新同步 cookies。

步骤 3:同步 cookies(仅在需要时)

如果用户想要使用云端浏览器,但没有云端配置文件具有正确的 cookies,则从本地 Chrome 配置文件同步它们。

在同步之前,代理必须:

  1. 询问使用哪个本地 Chrome 配置文件
  2. 询问要同步的域名 — 不要默认同步整个配置文件
  3. 继续前进行确认

检查本地配置文件有哪些 cookies:

browser-use -b real profile cookies "Default"
# → youtube.com: 23
# → google.com: 18
# → github.com: 2

特定域名同步(推荐):

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

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

browser-use profile sync --from "Default"
# 同步所有 cookies — 包括敏感数据、跟踪 cookies、每个会话令牌

仅在用户明确需要其完整浏览器状态时使用。

精细控制(高级):

# 将 cookies 导出到文件,手动编辑,然后导入
browser-use --browser real --profile "Default" cookies export /tmp/cookies.json
browser-use --browser remote --profile <id> cookies import /tmp/cookies.json

使用同步后的配置文件:

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

运行子代理

使用云端会话并行运行自主浏览器代理。

核心工作流程: 使用 run 启动任务 → 使用 task status 轮询 → 收集结果 → 清理会话。

  • 会话 = 代理:每个云端会话是一个拥有自己状态的浏览器代理
  • 任务 = 工作:交给代理的工作;一个代理可以顺序运行多个任务
  • 会话生命周期:一旦停止,会话无法恢复 — 启动新会话

启动任务

# 单个任务(默认异步 — 立即返回)
browser-use -b remote run "搜索 AI 新闻并总结前 3 篇文章"
# → task_id: task-abc, session_id: sess-123

# 并行任务 — 每个都有自己的会话
browser-use -b remote run "研究竞争对手 A 定价"
# → task_id: task-1, session_id: sess-a
browser-use -b remote run "研究竞争对手 B 定价"
# → task_id: task-2, session_id: sess-b
browser-use -b remote run "研究竞争对手 C 定价"
# → task_id: task-3, session_id: sess-c

# 同一会话中的顺序任务(复用 cookies、登录状态等)
browser-use -b remote run "登录 example.com" --keep-alive
# → task_id: task-1, session_id: sess-123
browser-use task status task-1  # 等待完成
browser-use -b remote run "导出设置" --session-id sess-123
# → task_id: task-2, session_id: sess-123 (同一会话)

管理与停止

browser-use task list --status finished      # 查看已完成的任务
browser-use task stop task-abc               # 停止任务(如果使用 --keep-alive,会话可能继续)
browser-use session stop sess-123            # 停止整个会话(终止其任务)
browser-use session stop --all               # 停止所有会话

监控

任务状态设计为令牌高效。 默认输出最少 — 仅在需要时展开:

模式 标志 令牌 何时使用
默认 (无) 轮询进度
紧凑 -c 需要完整推理
详细 -v 调试动作
# 对于长任务(50+ 步)
browser-use task status <id> -c --last 5   # 仅最后 5 步
browser-use task status <id> -v --step 10  # 检查特定步骤

实时视图browser-use session get <会话-id> 返回一个实时 URL 以观看代理。

检测卡住的任务:如果 task status 中的成本/持续时间停止增加,则任务卡住 — 停止它并启动新代理。

日志browser-use task logs <任务-id> — 仅在任务完成后可用。

全局选项

选项 描述
--session 名称 使用命名会话(默认:”default”)
--browser 模式 浏览器模式:chromium, real, remote
--headed 显示浏览器窗口(chromium 模式)
--profile 名称 浏览器配置文件(本地名称或云端 ID)。适用于 opensession create 等 — 不适用于 run(改用 --session-id
--json 输出为 JSON
--mcp 通过 stdin/stdout 作为 MCP 服务器运行

会话行为:所有不带 --session 的命令使用相同的 “default” 会话。浏览器保持打开状态并在命令间复用。使用 --session 名称 并行运行多个浏览器。

提示

  1. 始终先运行 browser-use state 查看可用元素及其索引
  2. 使用 --headed 进行调试 查看浏览器正在做什么
  3. 会话会持久化 — 浏览器在命令之间保持打开状态
  4. 使用 --json 进行程序化解析
  5. Python 变量在会话内的 browser-use python 命令间持久存在
  6. CLI 别名bubrowserbrowseruse 都与 browser-use 相同

故障排除

首先运行诊断:

browser-use doctor

浏览器无法启动?

browser-use close --all               # 关闭所有会话
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>                # 重新开始

任务停止后会话复用失败
如果您停止一个任务并尝试重用其会话,新任务可能卡在“created”状态。请改为创建新会话:

browser-use session create --profile <配置文件-id> --keep-alive
browser-use -b remote run "新任务" --session-id <新会话-id>

任务卡在“started”:使用 task status 检查成本 — 如果未增加,则任务卡住。使用 session get 查看实时 URL,然后停止并启动新代理。

会话在任务完成后持续存在:任务完成不会自动停止会话。运行 browser-use session stop --all 进行清理。

清理

完成后始终关闭浏览器:

browser-use close                     # 关闭浏览器会话
browser-use session stop --all        # 停止云端会话(如果有)
browser-use tunnel stop --all         # 停止隧道(如果有)

📄 原始文档

完整文档(英文):

https://skills.sh/browser-use/browser-use/browser-use

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。