如何在 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。希望这可以帮助。
我正在尝试编写端到端测试以使用 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。希望这可以帮助。