2017-10-10 767 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