Browser Use Terminal
用途
Browser Use Terminal 用于通过 CDP 直接控制浏览器,让智能体自己驱动浏览器,完成网页自动化、抓取、测试和交互等任务。若遇到安装、配置或连接问题,可参考官方智能体安装说明(https://browser-use.com/skill)或完整文档(https://docs.browser-use.com/open-source/browser-use-terminal)。
主要能力
browser-use-terminal browser exec 运行预导入浏览器辅助函数的 Python 代码;browser-use-terminal browser <cmd> 是控制面,处理状态、连接、配置文件和恢复。其他能力包括:
- 导航与标签页:
goto_url(url)、new_tab(url)、page_info()、current_tab()、list_tabs(include_chrome=True)、switch_tab(target)、ensure_real_tab()、iframe_target(url_substr)。 - 输入:
click_at_xy(x, y, button="left", clicks=1)、type_text(text)、press_key(key, modifiers=0)、fill_input(selector, text)、scroll(x=0, y=0, dy=600)、upload_file(selector, path)。 - 等待:
wait(seconds)、wait_for_load(timeout=3)、wait_for_element(selector, timeout=3, visible=False)、wait_for_network_idle(timeout=3, idle_ms=500)。 - 视觉:
capture_screenshot(label="...", full=False, max_dim=None)、screenshot()、screenshot_clip(label, x, y, w, h)、note(caption)。 - 逃生通道:
js(expression)、cdp("Domain.method", **params)、cdp_batch(calls)、drain_events()。 - 无浏览器 HTTP:
http_get(url)、http_get_many(urls);带会话的抓取:browser_fetch(url)/browser_fetch_many(...)。 - 凭证(若用户已存储):
available_secrets()、type_text("<secret>name</secret>")、fill_input(sel, secret("name"))、totp("name")、is_logged_out()、email_inbox()/email_message(id)。 - 领域技能:
domain_skills_for_url(url_or_domain, include_content=True)列出站点专属操作手册。
使用方式
- 每条多行命令都使用 heredoc 形式,例如:
browser-use-terminal browser exec <<'PY'
new_tab("https://docs.browser-use.com")
wait_for_load()
print(page_info())
PY
- 脚本运行前浏览器会根据用户记住的偏好自动连接,首次调用可能需几秒。
- 在用户真实 Chrome 中的首次导航应使用
new_tab(url),而不是goto_url(url)。 - 浏览器状态在调用间持续保留,但 Python 变量不会;每次
exec都是针对同一活动浏览器的新解释器。 --session <name>隔离每次工作的产物目录与事件日志(默认default);--timeout <secs>限制单次 exec(默认 300)。
截图查看页面:capture_screenshot() 保存 PNG 并返回绝对路径,CLI 也会打印 Screenshot saved to <path>。查看方式因智能体而异:Claude Code 用 Read 工具,Codex CLI 用 view_image,OpenCode 用 read(需支持视觉的模型),Gemini CLI 用 read_file。若模型无法接收图像,则改用文本状态(print(page_info())、js(...)、wait_for_element(...))。坐标方面,截图是设备像素,click_at_xy(x, y) 接收 CSS 像素,需先除以 js("window.devicePixelRatio");截图默认限制每边 ≤1800 px,可用 BU_BROWSER_SCREENSHOT_MAX_DIM 或 capture_screenshot(max_dim=...) 覆盖。每次重要操作后都应重新截图确认。
浏览器控制面
browser-use-terminal browser status --json
browser-use-terminal browser connect
browser-use-terminal browser connect local
browser-use-terminal browser connect managed --headless
browser-use-terminal browser preference use local|cloud|managed-headless
browser-use-terminal browser remote start
browser-use-terminal browser doctor
browser-use-terminal browser recover reconnect-websocket
browser-use-terminal browser recover stop-owned-browser
browser-use-terminal browser recover stop-owned-remote
browser-use-terminal browser daemon status|stop|logs
后台守护进程会跨命令保持 CDP 连接,因此浏览器和本地模式下 Chrome 的调试授权在多次调用间持续有效。当 status 显示问题或用户需要指定浏览器时再使用这些命令。若输出 JSON 显示 status: "needs-user-action",应原样展示 user_prompt 给用户并等待,不要猜测。任务中途遇到认证墙应停下询问用户,不要从截图输入凭证。连接真实 Chrome 需要一次性设置:chrome://inspect/#remote-debugging 中勾选“Allow remote debugging”,browser local setup 可引导完成。
适用场景与限制
- 适用:网页自动化、数据抓取、网页测试、与页面交互。优先截图确认,再决定点击、选择器或更多导航;点击时用截图读取像素坐标再
click_at_xy,命中检测在 Chrome 浏览器进程中完成,可穿透 iframe、shadow DOM 和跨源。批量静态页面用http_get_many(urls),已登录页面用browser_fetch(url)。 - 限制与注意事项:CDP 目标顺序不等于 Chrome 可见标签顺序;
chrome://内部页是伪页面目标,应使用list_tabs(include_chrome=False);page_info()会以{"dialog": ...}暴露 JS 对话框,需先处理;导航可能被域名策略阻止,可用nav_policy(url)提前检查;脚本默认 300 秒超时,应保持每次 exec 小而可观察,长循环需打印进度;优先使用合成器级操作而非框架特定 DOM 技巧。 - 收费标准、平台支持情况等暂未提供。