返回

Puppeteer入坑指南:如何为自动化测试部署合适Chrome版本

前端

使用Puppeteer与历史版本的 Chrome 或 Chromium

作为一名自动化测试工程师,您可能经常使用 Puppeteer,一个由 Google 开发的流行 Node.js 库,它允许您以无头或有头模式控制 Chrome 或 Chromium 浏览器。默认情况下,Puppeteer 会根据您正在使用的 Node.js 版本自动下载并安装对应的 Chrome 或 Chromium 版本。

为什么跳过 Puppeteer 的自动下载?

在大多数情况下,Puppeteer 的自动下载功能很方便。但是,有时您可能需要使用特定版本的 Chrome 或 Chromium。例如:

  • 具有特定功能或补丁程序的版本: 您可能需要使用包含特定功能或已应用补丁程序的浏览器版本。
  • 历史版本: 您可能需要使用浏览器历史版本来测试向后兼容性。

如何跳过 Puppeteer 的自动下载?

要跳过 Puppeteer 的自动下载,可以在命令行中使用 --PUPPETEER_SKIP_DOWNLOAD 标志。使用 npm 时,命令如下:

npm install puppeteer --PUPPETEER_SKIP_DOWNLOAD

手动安装 Chrome 或 Chromium

跳过 Puppeteer 的自动下载后,您可以手动安装所需的 Chrome 或 Chromium 版本:

使用 Puppeteer 与手动安装的浏览器

手动安装浏览器后,您可以使用 Puppeteer 与它交互:

  1. 创建 Puppeteer 实例: 创建一个新的 Puppeteer 实例。
  2. 设置 executablePath 选项:executablePath 选项设置为手动安装的 Chrome 或 Chromium 的路径。
  3. 使用 Puppeteer API: 使用 Puppeteer API 控制浏览器。

例如,以下代码使用手动安装的 Chrome 创建一个新的 Puppeteer 实例:

const puppeteer = require('puppeteer');

const browser = await puppeteer.launch({
  executablePath: 'C:\Program Files\Google\Chrome\Application\chrome.exe',
});

代码示例

导航到 Google 首页并截图:

const page = await browser.newPage();
await page.goto('https://www.google.com');
await page.screenshot({ path: 'google.png' });

常见问题解答

  • 为什么要跳过 Puppeteer 的自动下载?
    • 跳过自动下载可以让您手动安装特定版本或历史版本的 Chrome 或 Chromium。
  • 如何手动安装浏览器?
    • 从官方网站下载浏览器,解压缩并将其路径添加到您的 PATH 环境变量中。
  • 如何使用 Puppeteer 与手动安装的浏览器?
    • 创建 Puppeteer 实例,将 executablePath 选项设置为手动安装的浏览器的路径,然后使用 Puppeteer API 控制浏览器。
  • 有哪些需要注意的提示?
    • 确保您下载的浏览器版本与您的 Puppeteer 版本兼容。
    • 使用 --no-sandbox 标志启动 Puppeteer,以防止某些版本的 Chrome 中的安全沙箱限制。
  • 还有其他控制浏览器的方法吗?
    • 除了 Puppeteer 之外,还有其他库可用于控制浏览器,例如 WebDriver 和 Playwright。