Puppeteer Core v24.0.0 发布:重大变更与浏览器兼容性调整
Puppeteer 是一个由 Google Chrome 团队维护的 Node.js 库,它提供了高级 API 来控制 Chromium 或 Chrome 浏览器。Puppeteer Core 是该库的核心版本,不包含自动下载的浏览器二进制文件,适合需要自定义浏览器环境的开发者使用。最新发布的 Puppeteer Core v24.0.0 版本带来了一些重要的变更和改进。
主要变更点
1. 移除对 Firefox 通过 CDP 的支持
在这个版本中,Puppeteer 团队决定移除对 Firefox 浏览器通过 Chrome DevTools Protocol (CDP) 的支持。这一变更意味着开发者将无法再使用 Puppeteer 通过 CDP 协议来控制 Firefox 浏览器。这一决策可能是基于 Firefox 对 CDP 支持的不完整性和维护成本的考虑。
对于仍需要在 Puppeteer 中使用 Firefox 的开发者,建议使用 WebDriver 协议作为替代方案。Puppeteer 仍然支持通过 WebDriver 协议与 Firefox 交互,这提供了更稳定和标准化的浏览器自动化方式。
2. 移除已弃用的启动和连接选项
v24.0.0 版本清理了多个已标记为弃用的启动(Launch)和连接(Connect)选项。这些选项在之前的版本中已经被标记为弃用,现在被完全移除以提高代码的整洁性和维护性。
开发者需要检查他们的代码,确保不再使用这些已被移除的选项。常见的被移除选项可能包括一些过时的浏览器启动参数或连接配置。这一变更有助于简化 Puppeteer 的 API 表面,减少维护负担。
3. URL 片段包含变更
HTTPRequest 和 HTTPResponse 实例返回的 URL 现在将包含 URL 片段部分。这是一个行为变更,意味着如果请求或响应的 URL 包含片段标识符(如 #section),现在这些片段将被包含在返回的 URL 中。
这一变更使 Puppeteer 的行为更符合 Web 标准,因为 URL 片段是 URL 规范的一部分。开发者需要注意这一变化,特别是那些依赖于 URL 比较或解析的代码可能需要相应调整。
浏览器兼容性更新
Firefox 升级至 134.0 版本
Puppeteer Core v24.0.0 将支持的 Firefox 版本升级到了 134.0。这一更新确保了 Puppeteer 与最新版 Firefox 的兼容性,提供了更好的稳定性和功能支持。
Chrome 升级至 131.0.6778.264 版本
同样地,Chrome 的支持版本也被更新到了 131.0.6778.264。这一更新包含了 Chrome 的最新安全补丁和功能改进,确保 Puppeteer 用户能够利用最新的浏览器功能。
错误修复与改进
WebDriver 错误处理增强
新版本改进了对 WebDriver 协议中 DiscardedBrowsingContextError 错误的处理。这种错误通常发生在浏览上下文被丢弃时,如页面被关闭或导航导致的前后文失效。改进后的错误处理使 Puppeteer 在这些情况下表现更加稳定和可预测。
杂项修复
版本中还包含了一些杂项修复,如移除了错误的变更日志条目,确保文档的准确性。这些看似小的改进实际上对于维护项目的可信度和开发者体验非常重要。
依赖项更新
Puppeteer Core v24.0.0 将 @puppeteer/browsers 依赖项从 2.6.1 升级到了 2.7.0 版本。这个包负责处理浏览器二进制文件的管理,更新后的版本可能包含浏览器下载、安装和管理方面的改进。
升级建议
对于计划升级到 v24.0.0 的开发者,建议:
- 仔细检查代码中是否使用了已被移除的 Firefox CDP 支持
- 确认没有使用已被弃用的启动和连接选项
- 测试 URL 处理逻辑,确保能够正确处理包含片段的 URL
- 考虑测试环境中的浏览器版本是否与新版本 Puppeteer 兼容
这些重大变更虽然短期内可能需要一些适配工作,但从长远来看有助于 Puppeteer 项目的健康发展和更好的开发者体验。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0152- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0112