Browser-use实战指南:AI如何重塑自动化测试边界?

1

生成式AI技术正在深刻改变软件测试的工作方式。当大多数讨论还停留在AI生成测试用例的层面时,Browser-use已经实现了AI Agent直接操纵浏览器的突破性进展。这一基于LangChain和Playwright的开源工具,通过将自然语言指令转化为精准的CDP交互,有效解决了传统UI自动化中元素定位脆弱、维护成本高的核心问题。

Browser-use架构解析

Browser-use最初由苏黎世联邦理工学院的两名学生在五周内完成原型开发,后来获得Felicis Ventures和YC等机构的投资支持。当前开源版本已更新至0.9.7,并在国内各大镜像源同步更新。

其核心架构包含以下几个关键组件:

  • Agent:任务执行的核心控制器
  • Task:自然语言描述的任务需求
  • LLM:支持多种大模型的调用接口
  • Browser:实际执行任务的浏览器实例
  • Tools:可调用的工具集合,支持自定义扩展
  • Actor:基于CDP的低阶浏览器控制接口

Browser-use架构图

CDP协议作为WebSocket双向通信通道,允许外部程序直接与Chromium内核浏览器对话,相当于绕过了Selenium或Playwright的封装层,实现了更底层的浏览器控制。

环境部署实践

官方推荐安装方式

pip install uv
uv venv --python 3.12

source .venv/bin/activate  # Linux/Mac
.venv\Scripts\activate     # Windows

uv pip install browser-use
uvx browser-use install

Conda环境配置

conda create -n venv python=3.12 -y

conda activate venv

pip install browser-use
playwright install chromium

需要注意的是,默认安装的是Chromium浏览器,如需其他浏览器驱动,可使用playwright install webkit firefox命令安装相应驱动。

核心功能体验

登录验证场景实现

在实际测试中,登录功能验证是最常见的测试场景之一。以下是通过Browser-use实现管理员登录验证的完整示例:

from browser_use import Agent, Browser, ChatOpenAI
import asyncio

default_config = {
    'max_actions_per_step': 10,
    'llm_timeout': 300,
    'max_failures': 5,
    'calculate_cost': True,
    'wait_for_images': True,
    'cdp_timeout': 30_000,
}

async def login_out_test():
    task = """
    1.访问地址:https://mgt.nt-cfn.com:8443
    2.定位“邮箱/用户名”输入框,输入用户名:testadmin
    3.定位“密码”输入框,输入密码:!Q2w3e4r
    4.如果用户名和密码输入完成,定位“登录”按钮,点击登录按钮,等待页面加载完成且“总览”title能被看见
    """

    llm = ChatOpenAI(
        model="qwen3-vl-30b-a3b-thinking",
        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
        api_key="your_api_key_here"
    )

    browser = Browser(
        enable_default_extensions=False,
        user_data_dir="./result",
        channel='chromium',
        headless=False,
        disable_security=True,
        args=[
            '--ignore-certificate-errors',
            '--ignore-certificate-errors-spki-list',
            '--allow-running-insecure-content'
        ]
    )

    agent = Agent(
        task=task,
        browser=browser,
        llm=llm,
        use_vision=True,
        save_conversation_path="./run_logs",
        **default_config
    )
    return await agent.run()

if __name__ == '__main__':
    asyncio.run(login_out_test())

表单填写功能验证

对于更复杂的表单操作场景,Browser-use同样表现出色。以下是资源规格创建功能的测试实现:

表单测试结果

测试结果表明,Browser-use能够准确识别页面元素并执行相应的操作指令,大大简化了复杂表单的自动化测试流程。

技术要点解析

任务描述优化策略

在实际使用中发现,任务描述的准确性直接影响AI Agent的执行效果。推荐采用动宾结构的描述方式,并使用浏览器操作相关的动词:

task = """
Use search action to find "Python tutorials"
Use click to open first result in a new tab
Use scroll action to scroll down 2 pages
Use extract to extract the names of the first 5 items
Wait for 2 seconds if the page is not loaded, refresh it and wait 10 sec
Use send_keys action with "Tab Tab ArrowDown Enter"
"""

模型选择策略

经过实际测试,不同模型在Browser-use中的表现存在显著差异。以下是主要模型的性能对比:

模型 规模 成功率 速度/步 思考链 推荐指数
GPT-4o ≈200B 95% 45s ★★★★☆
Qwen3-30B-A3B 30/3B 92% 40s ★★★★★
DeepSeek-V3 236B 88% 40s ★★★

对于国内用户,推荐使用带有视觉理解能力的qwen3系列模型,通过ChatOpenAI进行实例化调用。

浏览器配置优化

本地浏览器配置

在不同操作系统下,浏览器的可执行路径和用户数据目录配置有所差异:

browser = Browser(
    executable_path='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
    user_data_dir='~/Library/Application Support/Google/Chrome'
)

browser = Browser(
    executable_path='C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
    user_data_dir='%LOCALAPPDATA%\\Google\\Chrome\\User Data'
)

browser = Browser(
    executable_path='/usr/bin/google-chrome',
    user_data_dir='~/.config/google-chrome'
)

远程浏览器配置

虽然官方提供了远程浏览器支持,但由于网络限制,目前在国内使用存在一定困难。

常见问题解决方案

异步编程适配

Browser-use从0.8.X版本开始全面转向异步模式,这对习惯同步编程的开发者提出了新的要求。正确的异步代码封装方式如下:

import asyncio

async def test_scenario():
    # 异步测试代码实现
    pass

if __name__ == '__main__':
    asyncio.run(test_scenario())

HTTPS证书处理

在企业测试环境中,自签名证书经常导致AI Agent执行失败。通过以下配置可以绕过证书验证:

browser = Browser(
    args=[
        '--ignore-certificate-errors',
        '--ignore-certificate-errors-spki-list',
        '--allow-running-insecure-content'
    ]
)

插件下载禁用

默认情况下Browser-use会下载uBlock Origin等插件,通过设置enable_default_extensions=False可以禁用这一行为。

插件下载提示

性能优化建议

基于实际测试经验,以下优化策略可以显著提升Browser-use的执行效率:

  1. 合理设置超时参数:根据测试场景复杂度调整llm_timeoutcdp_timeout
  2. 启用视觉模式:对于复杂页面元素识别,启用use_vision=True
  3. 配置重试机制:通过max_failures参数设置合理的重试次数
  4. 日志记录分析:利用save_conversation_path保存执行日志用于问题排查

未来展望

Browser-use代表了AI在软件测试领域应用的重要方向。随着大模型能力的持续提升和浏览器自动化技术的成熟,AI驱动的测试工具将在以下方面发挥更大作用:

  • 智能元素定位:基于视觉理解的精准元素识别
  • 自适应测试脚本:根据页面变化自动调整测试策略
  • 跨平台测试支持:统一的测试框架支持Web、移动端等多平台
  • 测试用例生成:基于业务需求自动生成完整的测试场景

通过Browser-use的实践应用,测试工程师可以更专注于测试策略设计和业务逻辑验证,将重复性的执行工作交给AI Agent处理,从而实现测试效率的质的飞跃。