AX 爱鲜报

综合 / 人工智能 · 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
标签 LLM AI Agent 开源 自动化测试 浏览器

评论

登录后才可评论

0 条评论

  • 暂无评论,来写第一条吧。