Browser Use v0.6.0 彻底从 Playwright 切换到了基于 Chrome DevTools Protocol (CDP) 的全新架构,带来了一系列性能和功能的提升。这是个大动作,标志着网页自动化工具进入了一个新的阶段。

为什么放弃 Playwright?
Browser Use 团队决定抛弃 Playwright,改用直接基于 CDP 的实现,主要是因为 Playwright 的一些局限性:
· 检测问题:Playwright 在运行时容易被网站检测到(比如留下“痕迹”),这对需要隐秘操作的自动化任务不利。
· 性能瓶颈:Playwright 的架构涉及额外的进程间通信(IPC)和网络跳跃,导致性能较低。
· 不必要的依赖:Playwright 要求使用 WebDriver,这被认为是过时的需求,增加了复杂性。
通过直接使用 CDP,Browser Use 消除了这些问题,带来更高效、更隐秘的自动化体验。
新版本的亮点
新版 Browser Use(0.6.0)基于 CDP 重写了核心功能,带来了以下改进:
· 更隐秘:没有 Playwright 的“泄漏”,更难被网站检测到,适合需要绕过反爬机制的场景。
· 更快:去掉了 Playwright 的额外通信层,操作速度显著提升。例如,在极端测试中,处理 2000+ 交互元素的 DOM 树构建和截图仅需 4 秒,加上 LLM 调用,总计每步操作时间降到 8~10 秒。
· 更稳定:解决了 Playwright 中截图超时或浏览器崩溃的问题。
· 事件驱动 API:新增了基于事件的 API,能实时响应浏览器中的动态事件,比如下载、页面变化、弹窗、权限请求等。这些事件会被汇总到 recent_events_summary 中,方便自动化脚本处理。
技术细节:CDP 和 cdp-use
新版 Browser Use 使用了 cdp-use,这是一个为 CDP 量身打造的 Python 客户端库。它的特点包括:
· 类型安全:通过自动生成的 Python 绑定,提供类似 TypeScript 的类型检查,确保代码在开发阶段就能发现错误。
· 事件注册:支持类型安全的异步事件处理,比如页面加载、DOM 变化、JavaScript 控制台消息等,开发者可以轻松订阅这些事件。
· 自动生成:cdp-use 从官方 Chrome DevTools 协议规范生成代码,保持与最新协议同步,支持 50+ 个 CDP 域(如 DOM、Network、Runtime 等)。
· 简单易用:提供直观的 API,比如导航到网页、执行 JavaScript、获取 DOM 结构等,代码示例清晰,适合快速上手。
为什么这很重要?
这次更新不仅是技术上的大修,更是 Browser Use 项目理念的转变:
· 性能与效率:通过直接使用 CDP,消除了中间层,显著提升了速度和稳定性。
· 开发者友好:类型安全的 API 和强大的事件处理机制让开发更高效,减少调试时间。
· 隐秘性:对需要绕过反爬机制的自动化任务来说,低检测率是个巨大优势。