傀儡师 - 简介


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

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

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

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

自动化和精简

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

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

www.npmtrends.com/puppeteer

木偶师下载

傀儡师架构

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

Puppeteer 具有以下层次结构 -

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

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

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

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