今年早些时候,我们宣布 Chrome 112 中推出了 Chrome 的新无头模式 (--headless=new
)。借助此模式,开发者可以在无人值守的环境中运行 Chrome,而无需任何可见的界面,这对于测试和自动化用例非常有用。
在该公告中,我们提到了计划从 Chrome 二进制文件中移除旧版无头模式。移除旧版无头浏览器是合理的,因为旧版无头浏览器在技术上是单独的浏览器,这意味着我们目前在一个二进制文件中提供两个浏览器。同时,我们也承认旧版和新版无头模式有不同的应用场景:
- 旧版无头模式是 Chromium 的
//content
模块的轻量级封装容器,因此依赖项要少得多。具体而言,它不需要 X11/Wayland、D-Bus,并且在某些方面比完整的 Chrome 浏览器的性能更出色。因此,它适用于自动截取屏幕截图或 Web 抓取等用例。 - 另一方面,新版无头 Chrome 是真正的 Chrome 浏览器,因此更真实、更可靠,并且提供更多功能。因此,它更适合高精度端到端 Web 应用测试或浏览器扩展程序测试。
换句话说,您需要在性能和真实性之间进行权衡。哪种无头模式最适合您?具体取决于您的使用场景。
如果开发者和测试人员的自动化用例不需要完整的 Chrome 功能,则可以使用旧版无头模式。否则,新版无头版可能是最佳选择。
为了确保开发者和测试人员能够继续在这两种方案之间进行选择,我们很高兴地宣布,旧版无头版实现现已作为独立的 chrome-headless-shell
二进制文件提供。系统会为每个面向用户的 Chrome 版本生成这些新的 chrome-headless-shell
二进制文件,并且从 Chrome 120 开始,您可以通过 Chrome for Testing 基础架构下载这些文件。
如何获取 chrome-headless-shell
二进制文件?
与其他 Chrome for Testing 二进制文件一样,如需为您的平台下载 chrome-headless-shell
,最简单的方法是使用 我们的 @puppeteer/browsers
命令行实用程序(可通过 npm
使用)。下面是一些示例:
# Download the latest available `chrome-headless-shell` binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome-headless-shell@stable
# Download a specific `chrome-headless-shell` version.
npx @puppeteer/browsers install chrome-headless-shell@120.0.6098.0
如果您希望自行构建自动脚本来下载 chrome-headless-shell
二进制文件,我们也为您提供了相应帮助。Chrome 测试版提供 JSON API 端点,其中包含每个 Chrome 发布渠道(稳定版、Beta 版、开发者版和 Canary 版)的最新版本。如需快速了解最新状态,请参阅 Chrome 用于测试的可用性信息中心。
反馈
我们期待收到您对 chrome-headless-shell
的反馈。如果您遇到任何问题,请报告。