我想转到登录页面,仅等待登录凭据的存在。我尝试过:
page.goto('https://example.com/login')
还尝试了waitUntil的所有4个选项。
问题在于该页面正在等待页面上其他实际不需要登录的东西加载,因此它经常超时。
我只想等待登录/密码字段进入页面-在填充该字段之前,我还是会进行检查。
谢谢。
答案 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)
。