Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js Puppeter-如何设置导航超时?_Javascript_Node.js_Puppeteer - Fatal编程技术网

Javascript 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

我正在使用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: '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);