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 项目的健康发展和更好的开发者体验。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0194- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00