Angularjs 如何在角度量角器中侦听浏览器窗口关闭事件

Angularjs 如何在角度量角器中侦听浏览器窗口关闭事件,angularjs,browser,protractor,angularjs-e2e,e2e-testing,Angularjs,Browser,Protractor,Angularjs E2e,E2e Testing,我正在尝试编写e2e测试,以便使用auth0登录我的应用程序。当用户输入他们的凭据并单击以登录时,auth0将加载一个弹出窗口,我认为该弹出窗口正在验证他们的详细信息,当此窗口关闭时,我知道登录尝试是否成功或失败。目前,为了让测试正常进行,我正在打电话 browser.sleep(4000).then(.... 使其等待弹出窗口打开并处理其数据,然后关闭。但这似乎不是一个好办法。理想情况下,我希望在弹出窗口上侦听关闭事件,但我不确定如何执行此操作?有人有什么想法吗 谢谢 尝试使用量角器的wai

我正在尝试编写e2e测试,以便使用auth0登录我的应用程序。当用户输入他们的凭据并单击以登录时,auth0将加载一个弹出窗口,我认为该弹出窗口正在验证他们的详细信息,当此窗口关闭时,我知道登录尝试是否成功或失败。目前,为了让测试正常进行,我正在打电话

browser.sleep(4000).then(....
使其等待弹出窗口打开并处理其数据,然后关闭。但这似乎不是一个好办法。理想情况下,我希望在弹出窗口上侦听关闭事件,但我不确定如何执行此操作?有人有什么想法吗

谢谢

尝试使用量角器的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');
  });
});
或者,如果您得到的弹出窗口是一个警报,那么您可以检查警报是否存在,然后根据需要进行验证。希望这有帮助

谢谢!使用browser.wait()确实为我解决了这个问题,但我无法检查元素,因为如果调用browser.switchTo()弹出窗口,弹出窗口似乎会出现某种问题,然后它会自动关闭-我收到一个NoSuchWindowError错误。相反,我检查了browser.getAllWindowHandles()数组的长度,看起来效果不错。