以 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. 另一方面,全新的无头浏览器是真正的 Chrome 浏览器,因此更加真实可靠,也提供更多功能。因此,它更适合进行高准确度的端到端 Web 应用测试或浏览器扩展程序测试。

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

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

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

为确保开发者和测试人员继续在这两个选项之间进行选择,我们很高兴地宣布,旧版无头实现现在作为独立的 chrome-headless-shell 二进制文件提供。这些新的 chrome-headless-shell 二进制文件是针对每个面向用户的 Chrome 版本生成的,从 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 for Testing 提供 JSON API 端点,并按 Chrome 发布版本(稳定版、Beta 版、开发者版和 Canary 版)提供最新可用版本。要快速了解最新状态,请查看 Chrome for Testing 可用性信息中心

反馈

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