我想截图一个网页,但无论我做什么木偶总是崩溃。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: false
});
const page = await browser.newPage();
await page.goto('https://www.google.com/');
await page.screenshot({path: 'screenshot/example.png'});
await page.waitFor(5 * 1000);
await browser.close();
})();
我将上面的代码保存为web.js,并在cmd中执行节点web.js。它在Chrome窗口出现2秒后就崩溃了,页面没有加载。
(节点:27064)UnhandledPromiserEjectionWarning:#(使用节点--trace-warnings...
显示创建警告的位置)(节点:27064)UnhandledPromiserEjectionWarning:未处理的承诺拒绝。这个错误可能是由于抛出一个没有catch块的异步函数内部,或者是由于拒绝了一个未用.catch()处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志--unhandled-rejections=strict
(请参见https://nodejs.org/api/CLI.html#CLI_unhandled_rejections_mode)。(拒绝ID:1)(节点:27064)[DEP0018]拒绝警告:不推荐未处理得承诺拒绝.将来,未处理的承诺拒绝将以非零退出代码终止node.js进程。
您必须向Promise添加一个错误处理程序。
一旦Promise(在本例中为异步函数)抛出任何错误,它就会到达执行根,这在nodejs中会导致应用程序“崩溃”。
只需像这样调用函数:
(async () => {
/* your code here */
})().catch(error => { console.error("Something bad happend...", error); });
``´