Javascript Node.js Puppeter-如何设置导航超时?
我正在使用node.js和puppeter获取一些数据。我打开的一些文件相当大。。。然后我得到一个错误: 错误:Javascript Node.js Puppeter-如何设置导航超时?,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我正在使用node.js和puppeter获取一些数据。我打开的一些文件相当大。。。然后我得到一个错误: 错误: our error { TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded at Promise.then (/project/node_modules/puppeteer/lib/NavigatorWatcher.js:74:21) at <anonymous> name: 'Timeo
our error { TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded
at Promise.then (/project/node_modules/puppeteer/lib/NavigatorWatcher.js:74:21)
at <anonymous> name: 'TimeoutError' }
如果正在加载一个沉重的页面,可以使用
timeout:0
来禁用超时错误
在页面中使用它。转到类似:
await page.goto('url'+tableCell04Val, {waitUntil: 'load', timeout: 0});
您可以这样设置超时
await page.goto('url'+tableCell04Val, {waitUntil: 'load', timeout: 10000}).then(() => {
console.log('success')
}).catch((res) => {
console.log('fails', res)
})
2019年更新
您还可以从V1.0.0开始更改页面行为:
await page.setDefaultNavigationTimeout(0);
参数是以毫秒为单位的超时
await page.setDefaultNavigationTimeout(60000);
参考资料:
有两种方法来处理木偶戏中的超时:
a)page.setDefaultNavigationTimeout(TimeoutInMilisons)
它会影响导航相关功能:
• page.goBack([options])
• page.goForward([options])
• page.goto(url[, options])
• page.reload([options])
• page.setContent(html[, options])
• page.waitForNavigation([options])
b)page.setDefaultTimeout(timeoutinMilisons)
它影响所有以前的导航功能以及所有等待功能:
• 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])
注意:页面。setDefaultNavigationTimeout
优先于页面。setDefaultTimeout
await page.goto('url'+tableCell04Val, { waitUntil: 'networkidle2',timeout: 0});
networkidle2对于执行长轮询或任何其他辅助活动的页面来说非常方便
检查我得到了相同的错误,但没有直接使用node.js应用程序。当我在Ubuntu服务器上使用installed时,我遇到了这个问题
我通过在以下文件/ur/local/lib/node_modules/magepack/node_modules/puppeter/libTimeoutSettings.js中增加超时来修复它
木偶演员的默认超时时间为30秒。要使用自定义超时,可以使用setDefaultNavigationTimeout和setDefaultTimeout方法或options参数中的timeout属性。所有情况下的等待时间均以毫秒为单位指定
await page.setDefaultNavigationTimeout(60000);
e、 g
传递0以禁用超时
await page.setDefaultNavigationTimeout(0);
您可以阅读直接页面的文档,但不能阅读oauth重定向页面的文档。
const page = await browser.newPage();
await page.setDefaultNavigationTimeout(60000); //timeout 60 seconds now
await page.setDefaultNavigationTimeout(0);