Puppeteer 控制浏览器

最后更新于:2022-04-02 03:30:54

[TOC] > [官网](https://pptr.dev/#?product=Puppeteer&version=v5.3.1&show=api-class-keyboard) ## 概述 它提供了一些高级API来通过DevTools协议控制Chromium或Chrome ## 功能 * 生成页面的截图和PDF; * 抓取 SPA 并生成预渲染的内容(即“SSR”); * 从网站抓取内容; * 自动表单提交,UI测试,键盘输入等; * 创建一个最新的自动化测试环境。 使用最新的 JavaScript 和浏览器功能,直接在最新版本的 Chrome 中运行测试; * 捕获你网站的 Timeline Trace,来帮助诊断性能问题; ## APi * Puppeteer:通过DevTools协议与浏览器通信,创建Browser实例。 * Browser:浏览器实例,可以拥有多个BrowserContext。 * BrowserContext:定义了一个浏览会话,可以拥有多个Page。 * Page:至少有一个Frame:主框架。 可能存在由iframe或框架标签创建的其他帧。 * Frame: 至少有一个执行上下文 - 默认执行上下文 - 执行框架的JavaScript。 Frame可能有与扩展相关联的其他执行上下文。 * Worker: 具有单个执行上下文,便于与WebWorkers交互。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/db/eb/dbebd6742050e03da030285864e24c86_780x662.png) ## 安装 ``` npm i puppeteer ``` ## 示例 ## hello world ``` const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto('https://www.baidu.com'); await page.screenshot({path: 'example.png'}); await browser.close(); })(); ```
';