操纵cannot的人不能处理字符串函数;得到ERR:超过导航超时:超过30000ms;信息

时间:2018-08-14 17:40:17

标签: string timeout puppeteer

以下代码有时可能会起作用,有时我会收到错误消息“ ERR:超过导航超时:超过30000ms”

它似乎取决于字符串函数的类型和所请求的站点

我尝试过的所有事情都是结果不一致。即有时它起作用,有时却不起作用;抱歉,没有更多信息

const puppeteer = require('puppeteer');
(async () => 
{
try{ 
const browser = await puppeteer.launch({headless: false});
    const page = await browser.newPage();
await page.goto('http://www.google.com')
const html = await page.content();              
y1 = html.replace('"',"xxxxxxxxxxxxx");
y2 = y1.substr(1,15);
console.log('HTML:', y2);
}//try
catch (err) {console.log('ERR:', err.message);}         
})();//async

1 个答案:

答案 0 :(得分:0)

默认情况下,每次页面导航到URL(page.goto)时,它都会等待事件“加载”被触发,如果事件(负载)没有被触发,则默认等待30000ms页面抛出:超时超过

您可能正在加载沉重或缓慢的页面 您应该将超时更改为更大的值,具体取决于页面加载所需的时间

通过设置页面的全局超时值:

await page.setDefaultNavigationTimeout(timeout)
//timeout => the time in milliseconds

或在函数调用的参数中设置timout

await page.goto(url,{
    timeout: 60000 //timeout here is 60 seconds
})
//timeout => the time in milliseconds