1.運行時報錯:ExperimentalWarning: The fs.promises API is experimental
解決:下載最新版本的Node~
2.啟動后,頁面崩潰
解決:
const args = [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-infobars', ]
3.使用page.waitForNavigation()方法后,發現獲取不到指定元素。
page.waitForNavigation({ timeout: 30 * 1000, waitUntil: [ 'load', //等待 “load” 事件觸發 'domcontentloaded', //等待 “domcontentloaded” 事件觸發 'networkidle0', //在 500ms 內沒有任何網絡連接 'networkidle2' //在 500ms 內網絡連接個數不超過 2 個 ] })
注意:如果需要等待所有異步請求執行完畢,使用以上代碼沒有效果?
解決:改用page.waitFor或者page.waitForSelector
4. 通過以下語句返回的是undefined,無法獲取到elementHandle。
const span_1 = await page.$$eval('span', span_s => {
var span = span_s.filter(span =>{
return span.innerText.includes('定制')
});
console.log(span);
return span
});
原因:回調是在瀏覽器環境里執行的,無法返回elementHandle類型
解決:要么在瀏覽器環境執行所有操作返回最終結果,要么改用page.$(), page.$$(),page.$X()再操作
5.TypeError: Cannot read property 'waitForSelector' of null
現象:Puppeteer不穩定??,時常會出現~,觀察發現是頁面元素未渲染完畢就停止渲染了,只能加入重試機制重刷頁面
6.Page.$()和Page.$$()無法根據文本內容過濾
解決:Xpath語法會更加強大,改用page.$X()
