首页
/ Puppeteer Core v24.0.0 发布:重大变更与浏览器兼容性调整

Puppeteer Core v24.0.0 发布:重大变更与浏览器兼容性调整

2025-05-31 18:36:58作者:裴锟轩Denise

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 的开发者,建议:

  1. 仔细检查代码中是否使用了已被移除的 Firefox CDP 支持
  2. 确认没有使用已被弃用的启动和连接选项
  3. 测试 URL 处理逻辑,确保能够正确处理包含片段的 URL
  4. 考虑测试环境中的浏览器版本是否与新版本 Puppeteer 兼容

这些重大变更虽然短期内可能需要一些适配工作,但从长远来看有助于 Puppeteer 项目的健康发展和更好的开发者体验。

登录后查看全文
热门项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
260
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
854
505
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
254
295
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
331
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
397
370
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
21
5