返回
Puppeteer入坑指南:如何为自动化测试部署合适Chrome版本
前端
2023-04-15 06:40:59
使用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 版本:
- 下载浏览器: 从以下链接下载 Chrome 和 Chromium 的历史版本:
- 解压缩文件: 将下载的文件解压缩到您选择的目录中。
- 添加到 PATH: 将安装目录的路径添加到您的 PATH 环境变量中。
使用 Puppeteer 与手动安装的浏览器
手动安装浏览器后,您可以使用 Puppeteer 与它交互:
- 创建 Puppeteer 实例: 创建一个新的 Puppeteer 实例。
- 设置
executablePath
选项: 将executablePath
选项设置为手动安装的 Chrome 或 Chromium 的路径。 - 使用 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 实例,将
- 有哪些需要注意的提示?
- 确保您下载的浏览器版本与您的 Puppeteer 版本兼容。
- 使用
--no-sandbox
标志启动 Puppeteer,以防止某些版本的 Chrome 中的安全沙箱限制。
- 还有其他控制浏览器的方法吗?
- 除了 Puppeteer 之外,还有其他库可用于控制浏览器,例如 WebDriver 和 Playwright。