2017-10-10 20 views
0

我想关闭页面时,puppeteer面临任何错误,有时页面我尝试加载崩溃,并没有调用.close();Chrome puppeteer关闭页面上的错误事件

(async() => { 
const page = await browser.newPage(); 
await page.setViewport({width: resWidth, height: resHeight}); 
await page.goto(d["entities"]["urls"][0]["expanded_url"], {timeout :90000}); 
await page.screenshot({path: './resimdata/'+d['id']+'.png' ,fullPage: true}); 
await page.close(); 
})(); 

回答

0

有一个问题/ PR的木偶回购有关这将有助于类似的情况。

有关问题的链接:https://github.com/GoogleChrome/puppeteer/issues/952

同时,你可以试试这个小黑客,如果PR是那里0.12+版本,我们不必担心下面的代码。

(async() => { 
    const browser = await puppeteer.launch({headless: false}); 
    const page = await browser.newPage(); 

    function handleClose(msg){ 
     console.log(msg); 
     page.close(); 
     browser.close(); 
     process.exit(1); 
    } 

    process.on("uncaughtException",() => { 
     handleClose(`I crashed`); 
    }); 

    process.on("unhandledRejection",() => { 
     handleClose(`I was rejected`); 
    }); 

    await page.goto("chrome://crash"); 

})(); 

将输出类似于以下,

▶ node app/app.js 
I was rejected