【问题标题】:How to listen for browser window close event in Angular Protractor如何在 Angular Protractor 中监听浏览器窗口关闭事件
【发布时间】:2015-08-24 06:17:24
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: angularjs browser protractor angularjs-e2e e2e-testing


    【解决方案1】:

    尝试使用量角器的 wait() 函数来检查元素的存在。这是它的链接 - 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。希望这可以帮助。

    【讨论】:

    • 谢谢!使用 browser.wait() 确实为我修复了它,但我无法检查元素,因为如果您在弹出窗口上调用 browser.switchTo() 然后它会自行关闭,弹出窗口似乎存在某种问题 -我收到了 NoSuchWindowError。相反,我检查了 browser.getAllWindowHandles() 数组的长度,这似乎工作正常。
    猜你喜欢
    • 2018-09-12
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2016-02-15
    • 2021-06-01
    相关资源
    最近更新 更多