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

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

2025-05-31 03:01:35作者:裴锟轩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 项目的健康发展和更好的开发者体验。

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

项目优选

收起
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
139
1.91 K
kernelkernel
deepin linux kernel
C
22
6
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
192
273
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
923
551
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
421
392
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
145
189
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Jupyter Notebook
74
64
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
344
1.3 K
easy-eseasy-es
Elasticsearch 国内Top1 elasticsearch搜索引擎框架es ORM框架,索引全自动智能托管,如丝般顺滑,与Mybatis-plus一致的API,屏蔽语言差异,开发者只需要会MySQL语法即可完成对Es的相关操作,零额外学习成本.底层采用RestHighLevelClient,兼具低码,易用,易拓展等特性,支持es独有的高亮,权重,分词,Geo,嵌套,父子类型等功能...
Java
36
8