以 chrome-headless-shell 下载旧版 Chrome

Mathias Bynens
Mathias Bynens

今年早些时候,我们宣布在 Chrome 112 中提供 Chrome 的全新无头模式 (--headless=new)。借助该模式,开发者可以在没有任何可见界面的无人值守的环境中运行 Chrome,这对于测试和自动化用例非常有用。

在本次公告中,我们提到了从 Chrome 二进制文件中移除旧版无头模式的计划。此移除操作是合理的,因为从技术上来讲,旧版 Headless 是一个独立的浏览器,这意味着我们目前在一个版本中提供了两个浏览器二进制文件。与此同时,我们也深知,新旧无头模式的用例各不相同:

  1. 旧的无头模式是 Chromium //content 模块的轻量级封装容器,因此它的依赖项要少得多。具体来说,它不需要 X11/Wayland 和 D-Bus,而且从某些方面来说,其性能比成熟的 Chrome 浏览器要好。这使得它适用于自动截屏或网络爬取等用例。
  2. 另一方面,新的 Headless 是真正的 Chrome 浏览器,因此更加真实可靠,并且提供更多功能。因此更适合用于准确度高的端到端 Web 应用测试或浏览器扩展程序测试。

换言之,您需要在效果和真实性之间进行权衡取舍。哪种无头模式最适合您?这取决于您的用例。

展示上述列表中所提供信息的示意图。

自动化用例不需要完整的 Chrome 功能的开发者和测试人员可能希望使用旧版 Headless。否则,新版无头可能是最佳选择。

为确保开发者和测试人员继续在这两个方案之间做出选择,我们很高兴地宣布,旧版无头实现现已作为独立的 chrome-headless-shell 二进制文件提供。这些新的 chrome-headless-shell 二进制文件是针对每个面向用户的 Chrome 版本生成的,可供通过 Chrome for Testing Infrastructure 下载(从 Chrome 120 开始)。

如何获取 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 for Testing 提供 JSON API 端点,其中包含每个 Chrome 发布渠道(稳定版、Beta 版、开发者版和 Canary 版)的最新可用版本。要快速了解最新状态,请访问 Chrome for Testing 可用性信息中心

反馈

期待收到你对“chrome-headless-shell”的反馈。如果您遇到任何问题,请向我们报告