0
点赞
收藏
分享

微信扫一扫

Puppeteer

Puppeteer 是一个 Node.js 库,它提供了一个高级 API 来通过 开发工具协议 控制 Chrome/Chromium。 Puppeteer 默认以 无头 模式运行,但可以配置为在完整 ("有头") Chrome/Chromium 中运行。

Puppeteer能做些什么

  • 生成页面的屏幕截图和 PDF。
  • 抓取 SPA(单页应用)并生成预渲染内容(即 "SSR"(服务器端渲染))。
  • 自动化表单提交、UI 测试、键盘输入等。
  • 使用最新的 JavaScript 和浏览器功能创建自动化测试环境。
  • 捕获站点的 时间线痕迹 以帮助诊断性能问题。
  • 测试 Chrome 扩展程序

文档

https://github.com/puppeteer/puppeteer?tab=readme-ov-file

https://pptr.dev/

https://pptr.nodejs.cn/https://zhaoqize.github.io/puppeteer-api-zh_CN/#?product=Puppeteer&version=v1.20.0&show=api-class-puppeteer


对比Selenium

  1. 熟悉爬虫或者 UI 自动化的同学可能会联想到 PhantomJSCasperJS 或者 Selenium,而作为 Chrome DevTools 团队亲自出品和维护的 puppeteer 不管是在功能的完整性、稳定性、兼容性、安全性还是性能都将成为碾压其他工具的存在。

Puppeteer

Selenium

支持浏览器

Chromium

多种浏览器

支持语言

Node.js

多种语言

安装

方便快速

稍微麻烦

使用

易上手

较难上手

  1. Puppeteer 比Selenium安装简单,特别是前端开发人员,完全可以当做node的一个包用,没有上手难度;
  2. Puppeteer 比Selenium功能更强大,可以得到浏览器的更多权限;

产品策略:

  • 速度: Puppeteer 相对于自动化页面的性能开销几乎为零。
  • 安全: Puppeteer 相对于浏览器而言是在进程外运行的,因此可以安全地自动执行潜在的恶意页面。
  • 稳定: Puppeteer 不应该是不稳定的,也不应该泄漏内存。
  • 简单: Puppeteer 提供了易于使用、理解和调试的高级 API。
  • Puppeteer 需要零设置,并与最适合它的 Chrome 版本打包在一起,使其成为 很容易上手
  • Puppeteer 具有事件驱动的架构,消除了许多潜在的不稳定因素。 puppeteer 脚本中不需要 “sleep(1000)” 调用。
  • Puppeteer 公开浏览器上下文,从而可以有效地并行测试执行。
  • Puppeteer 在调试方面表现出色: 将 “无头” 位翻转为 false,添加 “slowMo”,你将看到浏览器正在做什么。 你甚至可以打开 Chrome DevTools 来检查测试环境。


彩蛋:发现了一个微软的web测试框架,这个团队是之前基于Puppeteer做了浏览器录制自动测试的开源项目,然后做了微软这个。

https://github.com/microsoft/playwright

举报

相关推荐

0 条评论