Puppeteer 概述
Puppeteer 库提供高级 API,以使用 DevTools 协议控制基于Chromium的浏览器,包括 Microsoft Edge。
默认情况下,Puppeteer 会启动 无外设浏览器 。 无外设浏览器不显示用户界面 (UI) ,因此必须使用命令行。 还可以将 Puppeteer 配置为运行完整 (非无外设) Microsoft Edge。
默认情况下,安装 Puppeteer 时,安装程序会下载最新版本的 Chromium,该浏览器也是 Microsoft Edge 所基于的开源浏览器。
如果已安装 Microsoft Edge,则可以使用 puppeteer-core。
puppeteer-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,请执行以下操作:
puppeteer-core
需要 Node v8.9.0 或更高版本。 确保具有兼容版本的 Node.js。 为此,请从命令行运行node -v
。 此外,以下示例使用async
/await
,仅在 Node v7.6.0 或更高版本中受支持。在以下代码示例中,
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(); })();
按照后续步骤查找可执行路径,然后更改为
executablePath
指向 Microsoft Edge 的安装。 例如,在 macOS 上,executablePath
Microsoft Edge Canary 的 应设置为/Applications/Microsoft\ Edge\ Canary.app/
。若要查找 ,
executablePath
一个简单的手动方法是转到edge://version
并复制该页上的 可执行文件路径 。或者,若要以编程方式查找可执行路径,请首先通过运行以下命令之一来安装 边缘路径 包:
npm i edge-paths
yarn add edge-paths
然后,如果使用
edge-paths
查找可执行路径,请运行如下示例所示的代码。 它使用 边缘路径 包以编程方式查找在 OS 上安装 Microsoft Edge 的路径:const edgePaths = require("edge-paths"); const EDGE_PATH = edgePaths.getEdgePath();
现在,你已找到手动或以编程方式) (可执行路径,
example.js
请设置executablePath: EDGE_PATH
。 保存更改。从命令行运行
example.js
:node example.js
puppeteer-core
启动 Microsoft Edge,转到https://www.microsoft.com/edge/download/insider
,并保存网页的屏幕截图。 可以通过调用 page.setViewport () 自定义屏幕截图大小。以下
example.png
文件由example.js
生成:
前面的示例演示了可以使用 Puppeteer 和 涵盖的基本自动化和 puppeteer-core
测试方案。 有关 Puppeteer 及其工作原理的详细信息,检查 Puppeteer。
另请参阅
本地文章
- WebDriver
- 请联系 Microsoft Edge DevTools 团队 ,发送有关使用 Puppeteer、puppeteer-core 和 Microsoft Edge 的反馈。
- WebView2 功能和 API 概述中的 Chrome DevTools 协议 (CDP)
- 在 WebView2 应用中使用 Chrome DevTools 协议 (CDP)
Archive
博客文章
工具
- 下载 Microsoft Edge 预览体验成员频道
- Chromium项目的Chromium
- Node.js
- Puppeteer
- puppeteer vs. puppeteer-core
- Puppeteer 上的 page.setViewport ()