I'm using node.js and puppeteer to get some data. Some of the files I'm opening are quite large ... and then I get an error:
Error:
our error { TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded
at Promise.then (/project/node_modules/puppeteer/lib/NavigatorWatcher.js:74:21)
at <anonymous> name: 'TimeoutError' }
How can I ignore it or set a higher timeout?
That's my script:
await page.goto('url'+tableCell04Val, {waitUntil: 'load'});
You can use timeout: 0 to disable timeout errors if you're loading a heavy page.
Use it in your page.goto like:
await page.goto('url'+tableCell04Val, {waitUntil: 'load', timeout: 0});
#UPDATE 2019
You can also change the page behaviour since V1.0.0:
page.setDefaultNavigationTimeout(0);
The param is the timeout in milliseconds.
References: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagesetdefaultnavigationtimeouttimeout
https://pptr.dev/#?product=Puppeteer&show=api-pagesetdefaultnavigationtimeouttimeout
There are two methods to handle the timeouts in Puppeteer:
a) page.setDefaultNavigationTimeout(timeoutInMiliseconds)
It affects the navigation-related functions:
• page.goBack([options])
• page.goForward([options])
• page.goto(url[, options])
• page.reload([options])
• page.setContent(html[, options])
• page.waitForNavigation([options])
b) page.setDefaultTimeout(timeoutInMiliseconds)
It affects all the previous navigation functions plus all the Waiting funtions:
• page.waitFor(selectorOrFunctionOrTimeout[, options[, ...args]])
• page.waitForFunction(pageFunction[, options[, ...args]])
• page.waitForRequest(urlOrPredicate[, options])
• page.waitForResponse(urlOrPredicate[, options])
• page.waitForSelector(selector[, options])
• page.waitForXPath(xpath[, options])
NOTE: page.setDefaultNavigationTimeout takes priority over page.setDefaultTimeout