Puppeteer 概述

Puppeteer 库提供高级 API,以使用 DevTools 协议控制基于Chromium的浏览器,包括 Microsoft Edge。

默认情况下,Puppeteer 会启动 无外设浏览器 。 无外设浏览器不显示用户界面 (UI) ,因此必须使用命令行。 还可以将 Puppeteer 配置为运行完整 (非无外设) Microsoft Edge。

默认情况下,安装 Puppeteer 时,安装程序会下载最新版本的 Chromium,该浏览器也是 Microsoft Edge 所基于的开源浏览器。

如果已安装 Microsoft Edge,则可以使用 puppeteer-corepuppeteer-core 是 Puppeteer 的轻量级版本,可启动现有浏览器安装,例如 Microsoft Edge。 若要下载 Microsoft Edge,请转到 下载 Microsoft Edge 预览体验成员频道

Puppeteer 是 一个节点 库。

安装 puppeteer-core

可以使用 puppeteer-core 以下命令之一添加到网站或应用:

npm i puppeteer-core
yarn add puppeteer-core

使用 puppeteer-core 启动 Microsoft Edge

puppeteer-core 类似于其他浏览器测试框架,例如 WebDriver。 创建浏览器实例,打开网页,然后使用 Puppeteer API 操作网页。

若要使用 puppeteer-core 启动 Microsoft Edge,请执行以下操作:

  1. puppeteer-core 需要 Node v8.9.0 或更高版本。 确保具有兼容版本的 Node.js。 为此,请从命令行运行 node -v 。 此外,以下示例使用 async/await,仅在 Node v7.6.0 或更高版本中受支持。

  2. 在以下代码示例中, puppeteer-core 启动 Microsoft Edge,转到 https://www.microsoft.com/edge/download/insider,并将屏幕截图保存为 example.png。 复制以下代码片段并将其另存为 example.js

    const puppeteer = require('puppeteer-core');
    
    (async () => {
      const browser = await puppeteer.launch({
        executablePath: 'C:\\Program Files (x86)\\Microsoft\\Edge Dev\\Application\\msedge.exe'
      });
      const page = await browser.newPage();
      await page.goto('https://www.microsoft.com/edge/download/insider');
      await page.screenshot({path: 'example.png'});
    
      await browser.close();
    })();
    
  3. 按照后续步骤查找可执行路径,然后更改为 executablePath 指向 Microsoft Edge 的安装。 例如,在 macOS 上, executablePath Microsoft Edge Canary 的 应设置为 /Applications/Microsoft\ Edge\ Canary.app/

  4. 若要查找 , executablePath一个简单的手动方法是转到 edge://version 并复制该页上的 可执行文件路径

  5. 或者,若要以编程方式查找可执行路径,请首先通过运行以下命令之一来安装 边缘路径 包:

    npm i edge-paths
    
    yarn add edge-paths
    
  6. 然后,如果使用 edge-paths 查找可执行路径,请运行如下示例所示的代码。 它使用 边缘路径 包以编程方式查找在 OS 上安装 Microsoft Edge 的路径:

    const edgePaths = require("edge-paths");
    
    const EDGE_PATH = edgePaths.getEdgePath();
    
  7. 现在,你已找到手动或以编程方式) (可执行路径, example.js请设置 executablePath: EDGE_PATH。 保存更改。

  8. 从命令行运行 example.js

    node example.js
    

    puppeteer-core 启动 Microsoft Edge,转到 https://www.microsoft.com/edge/download/insider,并保存网页的屏幕截图。 可以通过调用 page.setViewport () 自定义屏幕截图大小。

    以下 example.png 文件由 example.js生成:

    example.js生成的 example.png 文件

前面的示例演示了可以使用 Puppeteer 和 涵盖的基本自动化和 puppeteer-core测试方案。 有关 Puppeteer 及其工作原理的详细信息,检查 Puppeteer

另请参阅

本地文章

Archive

博客文章

工具

协议

信息