0

我正在尝试使用 puppeteer(特别是在延迟后截取屏幕截图,但我的问题比这更基本)

https://github.com/GoogleChrome/puppeteer

我已成功运行以下命令。

sudo apt-get install npm
sudo apt-get install node
npm i puppeteer

文档说以下

使用其他浏览器测试框架的人会熟悉 Puppeteer。您创建一个 Browser 实例,打开页面,然后使用 Puppeteer 的 API 操作它们。

不幸的是,我不熟悉其他浏览器测试框架,也不知道“创建浏览器实例”是什么意思。

我看到了examples/screenshot.js 文件。它包含以下内容。

'use strict';

const puppeteer = require('puppeteer');

(async() => {

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://example.com');
await page.screenshot({path: 'example.png'});

await browser.close();

})();

我没有在任何自述文件、文档或问答中提到如何运行此代码。一切似乎都假设这一步是显而易见的,它可能是,但我不知所措,因为我对 Node.js 不是很熟悉。

  • 我打了电话node examples/screenshot.js,但终端没有给出任何反馈,并且图像不是在我指定的任何路径中创建的。权限是正确的。

  • 我也试着node install.js先打电话。

  • 我曾尝试直接在终端中内联运行脚本,但这会在终端中给出“意外的令牌(”)。

  • 我什至尝试在浏览器中运行它。显然那没有用。

如何运行 puppeteer 代码?

4

1 回答 1

1

您通过 apt 安装的 node.js 版本可能相当旧/稳定。

puppeteer 需要支持 async/await 功能的较新的 node.js (7.6+),这是在撰写本文时安装它的简单方法:https ://nodejs.org/en/download/package-manager/#debian-和-ubuntu-based-linux-distributions

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

然后,您确实通过发出命令来运行示例脚本

node examples/screenshot.js

并且屏幕截图应该在 ytou 运行命令的目录中。

于 2017-10-19T06:06:56.490 回答