Browser-use 实操:AI直接驱动浏览器自动化测试

1.背景

Browser-use(https://github.com/browser-use/browser-use)是一个python库,可以直接操作浏览器,不是爬虫,是AI浏览器智能体,它的核心卖点:你不用写 CSS 选择器、不用预写步骤,直接说一句人话("打开这个页面,把这三样加进购物车"),它自己看页面、自己操作,并把结果汇报给你。

2.安装步骤

你可以用 uv 或 pip 安装开源库:

使用 uv(官方推荐)

pip install uv
uv venv --python 3.12
source .venv/bin/activate  # Windows 用 .venv\Scripts\activate
uv pip install browser-use
uvx browser-use install     # 安装 Chromium

  安装完成后可运行:

browser-use doctor
browser-use --version

 用于检查 浏览器依赖、环境变量是否正常。

3.实操

1)安装完毕后,你可以在任何一个AI客户端如Claude,opencode 等中输入要完成的任务:

image

 任务完成后,对应的页面效果如图:

image

探究背后逻辑:实际就是一段Python代码,即一个xxx.py文件,上述例子可以直接运行下面代码,效果是一样的

from browser_use import Agent, Browser, ChatBrowserUse
import asyncio
from dotenv import load_dotenv
import os

# 加载环境变量中的API密钥
load_dotenv()

async def test_login_function():
    # 初始化浏览器实例(headless=False显示浏览器,便于调试;use_cloud=True启用云端反爬模式)
    browser = Browser(
        headless=False
        # ,use_cloud=False
    )
    
    # 初始化官方优化的ChatBrowserUse模型(执行效率更高)
    llm = ChatBrowserUse(api_key=os.getenv("DEEPSEEK_API_KEY"))
    
    # 创建AI智能体,传入测试任务指令
    agent = Agent(
        task="打开 https://demo.playwright.dev/todomvc/#/ 页面,在输入框中依次添加三条待办事项:Buy groceries、Walk dog、Read book,每条输入后按回车键确认然后把第一条标记为完成,验证剩余数量显示为2。",
        llm=llm,
        browser=browser,
        verbose=True,  # 打印执行日志,便于调试
    )
    
    # 执行测试任务并获取执行历史
    task_history = await agent.run()
    
    # 提取并打印测试结果
    print("\n📌 测试执行结果:")
    for message in task_history:
        if message["role"] == "assistant":
            print(message["content"])

# 执行测试函数
asyncio.run(test_login_function())

 2) browser use CLI 3.0实践

如果想直观了解原理,可以使用它提供的另外一种使用方式browser use CLI。

前置条件:需要先安装browser use CLI,过程中安装browser‑use 的官方 Skill,安装命令:

#需先安装UV,如果已安装,就忽略
pip3 install uv
uv tool install browser-use
browser-use --help

注:如果是在类似 Claude code、 Codex, 或者是其他 agent中,可以直接参照官网提示词(https://docs.browser-use.com/open-source/browser-use-cli)来安装

1.如果是window系统在powershell中执行,直接在shell中执行以下命令:

image

会报如下错误

image

 问题原因是“PowerShell 引号问题”即 PowerShell 对引号、转义字符的处理会导致参数被改写

 解决方案是,需要先创建一个临时文件,然后在用命令执行

image

 

注:browser-use run 在 CLI 3.0 中已移除,所以用官方推荐的方式:把 Python 通过 stdin 管道传给 browser-use 执行。

 4.browser-use vs playwright MCP

大家都知道使用playwright MCP也可以直接让AI操作浏览器,但是两者有什么区别和联系呢?

1)两者都是让AI操作浏览器,但是扮演的角色却不同

  • Playwright MCP = 通用浏览器 "遥控器"(目标是让 AI 客户端随时操作任何页面),

          即 "把浏览器能力做成工具给别人用",在实际使用过程中,还需要AI客户端(如Claude Code、VS Code、豆包等)配合使用

  • browser-use = Python 版 "自带大脑的浏览器 Agent 框架"(目标是自主完成一件任务),即"自己就是一个会用浏览器的 agent",不依赖AI客户端(如Claude Code、VS Code、豆包等)

2)两者的关系:

image

 

posted @ 2026-11-05 14:57  sunshine_coast  阅读(12)  评论(0)    收藏  举报