如何在 Angular Protractor 中监听浏览器 window 关闭事件

How to listen for browser window close event in Angular Protractor

我正在尝试编写端到端测试以使用 auth0 登录我的应用程序。当用户输入他们的凭据并单击登录时,auth0 会加载一个弹出窗口,我认为它正在验证他们的详细信息,当它关闭时,我知道登录尝试是成功还是失败。目前为了让测试正常工作,我打电话给

browser.sleep(4000).then(....

让它等待 4s 弹出窗口打开并处理其数据,然后关闭。但这似乎是一种糟糕的方法。理想情况下,我想在弹出 window 上监听关闭事件,但我不确定该怎么做?有人有什么想法吗?

谢谢!

尝试使用量角器的 wait() 函数来检查元素是否存在。这是它的 link - Protractor wait 然后通过元素的可见性或不可见性来验证元素的存在。下面是示例 -

var ele = //you element's locator
var EC = protractor.ExpectedConditions;
browser.wait(EC.visibilityOf(ele),10000).then(function(){
//verify the body details of popup
  browser.wait(EC.invisibilityOf(ele),10000).then(function(){
    console.log('element opened and closed');
  });
});

或者,如果您收到的弹出窗口是警报,那么您可以检查警报是否存在,然后根据需要进行验证。 More info on alert。希望这可以帮助。