加载页面而无需等待Puppeteer中的页面加载

时间:2019-11-11 18:36:46

标签: puppeteer

我想转到登录页面,仅等待登录凭据的存在。我尝试过:

page.goto('https://example.com/login')

还尝试了waitUntil的所有4个选项。

问题在于该页面正在等待页面上其他实际不需要登录的东西加载,因此它经常超时。

我只想等待登录/密码字段进入页面-在填充该字段之前,我还是会进行检查。

谢谢。

3 个答案:

答案 0 :(得分:1)

不能。最快的是如果您不指定waitUntil

await page.goto('https://example.com/login')

但是,如果尝试不等待它,则在尝试与页面进行交互时将引发错误:

// Notice no await here, meaning do not wait at all
page.goto('https://example.com/login')

// This will throw an error
await page.click('button')

答案 1 :(得分:0)

您可以使用此方法等待选择器

page.waitForSelector('#selectorID ').then(()=>{
//do smthg})
.catch((err)=>{console.log(err)});

答案 2 :(得分:0)

  

问题在于该页面正在等待页面上加载的其他东西,而这实际上并不是登录所必需的,因此它经常超时。

在这种情况下,我建议您使用page.goto,并选择永不超时,如下所示:

await page.goto(url, { timeout: 0});

或者您可以使用以下方法为脚本中的所有page.goto和其他navigation methods设置默认超时:

 page.setDefaultNavigationTimeout(0)

之后,您可以根据需要自由使用page.waitFor(selector)