Puppeteer 異常處理
從一個生成 PDF 的需求中接觸到了 Puppeteer ,隨著使用場景的深入,異常問題也越發難以處理。索性紀錄一下摸索過程,供新手參考學習。
一、Chromium revision is not downloaded
UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Chromium revision is not downloaded. Run “npm install” or “yarn install”
遇到這個問題,說明你並沒有成功下載Chromium
二、Unhandled promise rejection
需要使用catch
處理異常
三、spawn EACCES
沒有許可權,需要執行:
sudo chmod -R a+rwx chromium/Chromium.app
四、PrintToPDF is not implemented
Chrome/puppeteer/issues/576" target="_blank" rel="nofollow,noindex">https://github.com/GoogleChrome/puppeteer/issues/576
五、生成 PDF 亂碼問題
小技巧:如果你發現無頭列印異常,可以將設定改掉headless: false
,,通過除錯工具開啟。
六、在 Docker中使用
https://www.meiwen.com.cn/subject/xkwsbftx.html
七、更改預設視口
await page.setViewport({width: 1024, height: 880});
八、設定cookie
:
const COOKS =[ { 'domain': 'jartto.wang', 'name': 'user', 'value': 'jartto', } ] await page.setCookie(...COOKS);