【发布时间】:2017-10-12 03:13:54
【问题描述】:
您好,我正在尝试制作截图服务
const puppeteer = require('puppeteer');
var resWidth = 1366;
var resHeight = 1000;
var browser;
(async () => {
browser = await puppeteer.launch({ignoreHTTPSErrors: true});
});
当我收到一份工作时,我会尝试做
data.forEach(function(d){
try {
console.log(d["url"]);
(async () => {
var page = await browser.newPage();
await page.setViewport({width: resWidth, height: resHeight});
await page.goto(d["url"], {timeout: 90000, waitUntil: 'networkidle'});
await page.screenshot({path: './picdata/' + d['id'] + '.png' ,fullPage: true});
await page.close();
})();
} catch(e) {}
});
但我不能...这是错误:
(node:40596) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 7): TypeError: Cannot read property 'newPage' of undefined
我不想为每个屏幕截图打开一个新浏览器,启动浏览器需要时间并且需要更多内存?
我该怎么办?
【问题讨论】:
-
我解决了 var browser = null; puppeteer.launch().then(tempBrowser => browser = tempBrowser);
标签: node.js google-chrome puppeteer