综合 / 人工智能 · 2026-10-12 09:54 · 1 阅读 · 0 赞
113.1K Star 开源项目 Browser-Use:用自然语言让 AI 操作浏览器
Browser-Use 是基于无障碍 DOM 树与大模型的开源浏览器自动化框架,用自然语言指令完成填表、E2E 测试与数据采集,支持本地与云端两种模式,GitHub 星标已超 113.1K。

调试 Selenium、Playwright 脚本往往要花掉大半天时间:逐个写 CSS 选择器、XPath 定位元素,页面一改版,class、id 全部更新,整套脚本直接瘫痪。反复调试、反复维护,精力都消耗在和页面元素博弈上,真正的业务测试和数据采集反而没时间做。
传统自动化依赖硬编码元素路径,页面微小改动就会整套失效;纯截图的视觉方案又存在调用成本高、速度慢的短板。GitHub 上爆火的开源项目 Browser-Use 给出了第三条路线:基于浏览器无障碍 DOM 树,交由大模型理解网页,只用自然语言下达指令,AI 自主完成浏览器全流程操作。
截至目前项目 Star 已突破 113.1K+,支持本地开源部署与云端托管两种模式。不管是测试工程师、办公自动化、网页数据采集,还是普通用户实现填表、比价、批量操作网页,都可以直接落地。

01 Browser-Use 到底是什么
Browser-Use 是一套 Python 开源 AI Agent 浏览器自动化框架,底层架构分为三层:Python 上层 API → Rust 高性能核心 → Playwright 浏览器驱动。
它不是简单封装 Playwright,核心思路不是写死操作步骤,而是把浏览器的 无障碍可访问树(Accessibility Tree) 提取出来交给 LLM。
简单解释无障碍 DOM 树:它是浏览器原生输出的结构化页面信息,描述页面存在哪些按钮、输入框、链接,以及对应的文本语义,不依赖 CSS 样式和 class 类名。
大模型拿到这份结构化数据后,自主判断下一步应该点击哪个按钮、在哪个输入框填入内容、如何滚动页面,自主拆解完整业务任务。
它可以做到:你只需要用人类语言描述目标,AI 自动打开网页、找元素、填表单、点击、翻页、截图,完成完整业务链路,不需要手动写元素定位代码。

支持的大模型非常丰富:OpenAI GPT 系列、Anthropic Claude、Gemini、Ollama 本地大模型,还有项目自研、专门优化浏览器任务的 BU 2.0 模型 ChatBrowserUse,针对网页操作做专项调优,任务执行效率相比通用大模型提升 3-5 倍。
同时提供两套使用模式:
- 本地开源模式:MIT 协议开源,完全自主掌控浏览器实例,适合调试、私有化场景;需要自己处理反爬、验证码、代理等问题。
- Browser-Use Cloud 云端模式:托管 Stealth 隐身浏览器,内置指纹伪装、代理轮换、验证码自动处理,适合生产环境,新用户赠送免费额度,可复用浏览器登录 Profile,保留会话,不用反复写登录逻辑。

02 和传统自动化方案横向对比
| 方案 | 实现原理 | 优点 | 短板 |
|---|---|---|---|
| Selenium / Playwright 硬编码 | CSS Selector、XPath 写死元素路径 | 执行可控,速度快 | 页面改版直接失效,维护成本极高,大量时间耗在元素调试 |
| 截图 + 视觉识别自动化 | 页面截图交给多模态大模型识别 | 无视页面 DOM 结构 | 每轮调用消耗大量 token,运行速度慢,调用成本高 |
| Browser-Use 无障碍 DOM 树 | 提取 Accessibility Tree 结构化数据输入 LLM | 不受 class 名称改动影响,token 开销低,速度快,抗页面迭代;支持多模态视觉开关 | 复杂动态页面依然会偶发识别异常,依赖大模型推理质量 |
Browser-Use 巧妙做了取舍:不完全依赖截图视觉,也不绑定前端样式类名,依靠浏览器原生无障碍树,兼顾稳定性与运行成本,这也是它能够爆火的核心底层逻辑。
03 真实落地场景
Browser-Use 的核心价值:很多网页没有开放 API,但人人都可以访问网页。通过 AI 操控网页,就等价于间接操控这套系统。
✅ 测试自动化(测试工程师首选)
Web UI 冒烟测试、回归测试、表单校验、完整 E2E 业务流程验证。非技术人员用自然语言就可以编写测试任务,无需掌握脚本;页面迭代后不需要修改用例,AI 自动识别元素;支持接入 CI/CD 流水线,无头模式后台执行,自动保存截图与执行录像。
✅ 办公自动化
批量填写表单、求职简历自动投递,批量填报在线系统,信息检索整理。把个人信息交给 Agent,AI 自动识别每一个表单字段完成录入。
✅ 电商与网页操作
商品搜索、跨平台配件比价、加入购物车,模拟真人网页购物流程;不需要对接平台接口,直接操作网页端。
✅ 网页数据采集
模拟真人浏览网页,抓取整理页面信息;云端模式自带反爬规避,降低被网站拦截概率。
✅ 自定义业务扩展
支持注册自定义 Action 工具,任务完成后触发邮件通知、调用内部业务接口,打通 Agent 和自有业务系统。
典型真实案例:简历自动投递、生鲜网页下单、跨网站硬件比价,全部依靠自然语言指令完成,零硬编码元素定位。
04 完整可落地安装教程
⚠️ 环境硬性要求:Python >= 3.11,版本过低会直接依赖报错,执行 python --version 确认版本。优先使用 uv 包管理器,依赖解析速度远高于 pip。
1. 安装 uv 工具
pip install uv
2. 初始化项目,安装 browser-use 核心依赖
uv init
uv add browser-use
uv sync
3. 自动安装 Playwright 浏览器
uvx browser-use install
4. 配置环境变量
项目根目录新建 .env 文件:
# 使用官方云端模型/云端浏览器填这个
BROWSER_USE_API_KEY="你的API_KEY"
# 如果使用 OpenAI
OPENAI_API_KEY="你的OpenAI密钥"
云端 API 密钥前往 browser-use.com 注册获取。
5. 校验安装
browser-use --version
输出版本号即安装成功;提示命令不存在,关闭终端重新打开。

05 两种使用方式
方式一:CLI 命令行,零代码快速跑任务
适合临时调试、快速验证想法,终端直接输入自然语言任务,自动拉起浏览器执行。
# 执行自然语言测试任务
browser-use run "访问登录页https://xxx.com/login,输入账号test123密码123456,点击登录,校验是否成功跳转首页"
# 页面截图保存
browser-use screenshot "访问https://example.com首页,完整页面截图保存到output目录"
# 批量读取txt内多条测试用例执行
browser-use run --file test_cases.txt
方式二:Python 代码集成,接入业务、Pytest 测试流水线
示例 1:登录功能自动化测试
from browser_use import Agent, Browser, ChatBrowserUse
import asyncio
from dotenv import load_dotenv
import os
load_dotenv()
async def test_login_flow():
# 浏览器实例 headless=False 展示浏览器窗口方便调试
browser = Browser(
headless=False,
# use_cloud=True,处理反爬、验证码场景
)
# 使用官方 BU-2.0 专用模型
llm = ChatBrowserUse(api_key=os.getenv("BROWSER_USE_API_KEY"), model="bu-2-0")
agent = Agent(
task="访问https://xxx.com/login,账号test123,密码123456,点击登录,验证成功跳转首页,失败输出错误原因",
llm=llm,
browser=browser,
verbose=True
)
history = await agent.run()
print("\n✅任务最终结果:")
print(history.final_result())
asyncio.run(test_login_flow())
示例 2:完整电商 E2E 业务流程
from browser_use import Agent
from langchain_openai import ChatOpenAI
import asyncio
async def e2e_shopping():
agent = Agent(
task="""完成电商完整购买流程:
1.访问电商网站,搜索手机
2.打开第一个商品详情
3.选择黑色,256GB规格
4.加入购物车,进入购物车确认商品信息
5.前往结算,填写收货地址
6.选择支付宝支付,确认跳转支付页面
任意步骤出错直接返回错误信息""",
llm=ChatOpenAI(model="gpt-4o"),
use_vision=True # 复杂页面辅助识别
)
res = await agent.run()
print(res.final_result())
asyncio.run(e2e_shopping())
示例 3:Pytest 集成,CI 流水线无头配置
适合 Jenkins、GitLab CI 自动化流水线,后台无头运行,失败自动保存录像便于排查问题。
import pytest
from browser_use import Agent, BrowserConfig
ci_browser_cfg = BrowserConfig(
headless=True,
keep_alive=False,
save_recording=True
)
@pytest.mark.asyncio
async def test_core_business():
agent = Agent(
task="访问首页校验关键模块正常渲染",
browser_config=ci_browser_cfg,
llm=ChatBrowserUse()
)
result = await agent.run()
assert result.success is True
自定义扩展工具示例
你可以注册自定义动作,让 Agent 完成网页操作之后调用自有能力,例如发送通知:
from browser_use import Tools
tools = Tools()
@tools.action(description="任务完成发送邮件通知")
def send_email_notify(content: str) -> str:
return f"通知邮件已发送,内容:{content}"
agent = Agent(
task="网页任务执行完毕后发送邮件通知我",
llm=ChatBrowserUse(),
browser=browser,
tools=tools
)

06 生产落地选型方案
选型怎么选
- 本地开源模式适合:本地调试、私有化内网系统、没有强反爬与验证码场景;自己管理代理、浏览器实例;完全免费,MIT 协议。 坑点:遇到网站反爬、滑块验证码,本地模式很难处理,需要自行集成验证码解决方案。
- Browser-Use Cloud 云端模式适合:线上生产自动化任务,目标网站有反爬、验证码检测;需要复用浏览器登录会话 Profile;不想维护浏览器、代理池;有免费额度可以体验。
实战踩坑清单
- Python 版本必须 ≥ 3.11,低版本直接依赖报错;
- 复杂动态渲染页面,建议开启
use_vision=True视觉辅助识别,提升识别准确率; - Agent 任务描述尽量写清晰完整,把校验条件、异常处理写进 task 文本,大模型指令越明确结果越稳定;
- CI 流水线务必开启
headless=True,关闭浏览器窗口;开启save_recording=True,失败保存录像便于定位问题; - 本地模式容易被网站风控拦截,高频访问建议使用云端 Stealth 浏览器;
- 优先选择 BU-2.0 专用模型,相比通用大模型,浏览器任务推理速度、准确率更优。

07 总结
Browser-Use 并没有完全干掉 Playwright/Selenium,传统硬编码自动化在高稳定、高频接口测试场景依旧不可替代。但它开辟了全新的自动化范式:不需要再和页面元素死磕,把关注点从“怎么点击”回归到“要完成什么业务目标”。
对于频繁迭代的 Web 项目、大量一次性临时自动化任务、非技术同学参与自动化,Browser-Use 拥有巨大优势。无论是测试 E2E 回归、办公填表、网页信息采集,都值得上手体验。
项目官方资源
- GitHub 仓库:https://github.com/browser-use/browser-use