如何让页面等待,直到操纵up结束导航

时间:2019-11-25 19:32:57

标签: javascript node.js ui-automation puppeteer

这是我的情况:

我的应用程序使用Azure身份验证,因此它的设置方式是当我说await page.goto(url,{waitUntil:'condition'})时-在新标签页中打开该应用程序,然后打开一个新窗口,该窗口获取身份验证令牌并自行关闭并出现返回主应用页面。

现在问题是打开新页面的那一刻,puppeteer认为完成了该await page.goto(url,{waitUntil:'condition', timeout:60000})行的执行。因此,即使我的应用尚未加载,它也会跳到下一行。我不确定如何获取主应用程序页面的实例,并使其等待导航完成。所以我尝试了以下选项,我试图使所有打开的页面实例waitForNavigation:

pages = await browser.pages(
pages.forEach(page => {
   await page.waitForNavigation({waitUntil: 'networkidle0', timeout: 60000}) 
})

-效果不佳。

请让我知道如何制作父页面/具有主应用程序的页面,直到其他选项卡将令牌返回到它为止。

〜tia

1 个答案:

答案 0 :(得分:0)

如果您无法将登录令牌存储在实际页面中(可能作为回调函数接收到)

也许您可以使用

  • 等到浏览器有2个标签页
  • 等到页面之一是登录页面
  • 等待浏览器显示1个标签(因为登录页面已回答)
  • 继续。

如果您可以检查页面中令牌的存在,

稍等片刻,直到令牌具有值。