Phi*_*p M 18 javascript node.js puppeteer
我正在使用node.js和puppeteer来获取一些数据.我正在打开的一些文件很大......然后我收到一个错误:
错误:
our error { TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded
at Promise.then (/project/node_modules/puppeteer/lib/NavigatorWatcher.js:74:21)
at <anonymous> name: 'TimeoutError' }
Run Code Online (Sandbox Code Playgroud)
如何忽略它或设置更高的超时?
那是我的剧本:
await page.goto('url'+tableCell04Val, {waitUntil: 'load'});
Run Code Online (Sandbox Code Playgroud)
Jay*_*uld 26
timeout: 0
如果您正在加载繁重的页面,则可以使用禁用的超时错误.
在你的page.goto
喜欢中使用它:
await page.goto('url'+tableCell04Val, {waitUntil: 'load', timeout: 0});
Run Code Online (Sandbox Code Playgroud)
您可以在此处看到对Pupeteer进行的PR,其中添加了更改,以及文档和实现它的单元测试.
Jua*_*dez 23
在 Puppeteer 中有两种处理超时的方法:
一种) page.setDefaultNavigationTimeout(timeoutInMiliseconds)
它会影响与导航相关的功能:
• page.goBack([options])
• page.goForward([options])
• page.goto(url[, options])
• page.reload([options])
• page.setContent(html[, options])
• page.waitForNavigation([options])
Run Code Online (Sandbox Code Playgroud)
b) page.setDefaultTimeout(timeoutInMiliseconds)
它会影响所有以前的导航功能以及所有等待功能:
• 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])
Run Code Online (Sandbox Code Playgroud)
注意:page.setDefaultNavigationTimeout
优先于page.setDefaultTimeout
Jua*_*s22 11
从V1.0.0开始,您还可以更改页面行为:
await page.setDefaultNavigationTimeout(0);
Run Code Online (Sandbox Code Playgroud)
参数是超时(以毫秒为单位)。
参考:https : //github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagesetdefaultnavigationtimeouttimeout https://pptr.dev/#?product=Puppeteer&version=v1.17.0&show=api-pagesetdefaultnavigationtimeouttimeout
Hen*_*nry 10
您可以像这样设置超时
await page.goto('url'+tableCell04Val, {waitUntil: 'load', timeout: 10000}).then(() => {
console.log('success')
}).catch((res) => {
console.log('fails', res)
})
Run Code Online (Sandbox Code Playgroud)
小智 8
puppeteer 超时的默认值为 30 秒。要使用自定义超时,您可以使用 setDefaultNavigationTimeout 和 setDefaultTimeout 方法或 options 参数中的 timeout 属性。所有情况下的等待时间均以毫秒为单位指定。
await page.setDefaultNavigationTimeout(60000);
Run Code Online (Sandbox Code Playgroud)
例如
const page = await browser.newPage();
await page.setDefaultNavigationTimeout(60000); //timeout 60 seconds now
Run Code Online (Sandbox Code Playgroud)
传递 0 以禁用超时
await page.setDefaultNavigationTimeout(0);
Run Code Online (Sandbox Code Playgroud)
小智 6
await page.goto('url'+tableCell04Val, { waitUntil: 'networkidle2',timeout: 0});
Run Code Online (Sandbox Code Playgroud)
networkidle2 对于进行长轮询或任何其他辅助活动的页面非常方便。
检查https://github.com/puppeteer/puppeteer/issues/1552#issuecomment-350954419