Puppeteer - 简介

Puppeteer 分别用于前端开发和测试的自动化和简化。它由 Google 推出。Puppeteer 基于 Node.js 库并且是开源的。

Puppeteer 包含用于在headless模式或 Chromium 下与 Chrome 浏览器交互和管理的 API(遵循 DevTools 中的协议)。但是,它也可以用于 Chrome/Chromium/Edge/Firefox 等浏览器上的非headless执行。

Puppeteer 可用于自动化大多数 UI 测试、键盘、鼠标移动等。它可用于测试在 Angular 和 Angularjs 中开发的应用程序。可以使用 Puppeteer 执行网页抓取和抓取等操作。

Puppeteer 不被视为像 Selenium、Cypress、Protractor 等这样的自动化工具。它主要用于管理 Chromium 浏览器的内部功能。我们可以在 Chrome 浏览器中按 F12 或 Command+Option+C(在 MacOS 中)打开 DevTools。

Automation and Streamlining

Puppeteer 就像一个开发工具,因为它能够执行开发人员执行的大多数任务,如处理请求和响应、定位元素、网络流量和性能等。

如果我们跟踪过去几年 Puppeteer 下载的 npm 趋势,我们将观察到 Puppeteer 的使用呈上升趋势(可从以下链接获得)−

www.npmtrends.com/puppeteer

Puppeteer 下载

Puppeteer 架构

Puppeteer 利用 Node 库提供用于管理 Chromium 或 Chrome 浏览器的顶级 API。这是通过遵循 DevTools 的协议来实现的。

Puppeteer 具有以下层次结构 −

  • 浏览器(带/不带 headless 模式) − 浏览器执行要在浏览器引擎上执行的操作。

  • Chromium 开发项目或 CDP − Chromium 是执行所有操作的真正场所。浏览器 - Microsoft Edge 和 Chrome 使用 Chromium 作为浏览器引擎。

  • Puppeteer − 这实际上是一个基于节点模块的包。

  • 自动化测试代码 − 这也称为 Nodejs 级别。在这里,实际的自动化代码由最终用户使用 JavaScript 开发。