Puppeteer-core v24.2.0 版本更新解析
Puppeteer 是一个由 Google Chrome 团队开发的 Node.js 库,它提供了一个高级 API 来通过 DevTools 协议控制 Chromium 或 Chrome 浏览器。puppeteer-core 是 Puppeteer 的核心模块,它不包含浏览器本身,需要用户自行配置浏览器环境。
主要功能更新
新增键盘锁定和指针锁定权限支持
本次更新中,Puppeteer 新增了对键盘锁定(keyboard-lock)和指针锁定(pointer-lock)权限的支持。这两个功能在现代 Web 应用中越来越常见:
-
键盘锁定:允许网页捕获所有键盘输入,即使焦点不在该页面上。这在全屏游戏或多媒体应用中特别有用。
-
指针锁定:使鼠标指针被"锁定"在网页上,隐藏指针并允许无限移动。这对于第一人称视角游戏等需要连续鼠标输入的应用至关重要。
开发者现在可以通过 Puppeteer 的权限 API 来模拟这些权限的授予或拒绝,从而更全面地测试网页在不同权限状态下的行为。
浏览器版本升级
Puppeteer 24.2.0 版本同步更新了支持的浏览器版本:
-
Chrome 升级至 133.0.6943.53:这个版本包含了最新的安全补丁和功能改进。值得注意的是,133 版本可能包含了一些新的 DevTools 协议特性,这些特性可能会在未来的 Puppeteer 版本中被利用。
-
Firefox 升级至 135.0:对于使用 Puppeteer 与 Firefox 集成的开发者来说,这个更新确保了与最新 Firefox 版本的兼容性。
此外,还包含了一个针对 Chrome 132.0.6834.159 的修复性更新,这表明 Puppeteer 团队在持续跟踪浏览器版本的稳定性问题。
重要问题修复
WebDriver 用户代理设置改进
修复了一个关于 WebDriver 用户代理设置的问题。现在,用户代理可以被多次设置而不会出现问题。这个改进对于需要动态修改用户代理的测试场景特别重要,例如:
- 测试网站在不同用户设备上的响应
- 模拟爬虫行为
- 验证用户代理检测逻辑
依赖项更新
Puppeteer-core 24.2.0 更新了其依赖的 @puppeteer/browsers 包至 2.7.1 版本。这个包负责管理浏览器二进制文件的下载和安装,更新可能包含了浏览器管理的改进或修复。
技术影响分析
对于自动化测试开发者来说,这些更新意味着:
- 更全面的权限测试能力,可以模拟更多现代 Web 应用场景
- 与最新浏览器版本的兼容性保证
- 更稳定的 WebDriver 集成,特别是在需要修改用户代理的场景下
对于需要特定浏览器版本的开发者,建议关注 Puppeteer 与浏览器版本的对应关系,确保测试环境的一致性。
升级建议
升级到 Puppeteer-core 24.2.0 时,开发者应该:
- 检查现有测试中是否使用了键盘锁定或指针锁定功能,考虑添加相应的权限测试用例
- 验证现有测试在 Chrome 133 和 Firefox 135 下的行为
- 如果使用了 WebDriver 并动态修改用户代理,可以简化相关代码
这个版本继续强化了 Puppeteer 作为现代 Web 自动化测试工具的领先地位,为开发者提供了更多控制和测试现代 Web 应用特性的能力。
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 StartedRust098- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00