Javascript 等待吐司在量角器中消失

Javascript 等待吐司在量角器中消失,javascript,angularjs,protractor,toastr,angular-toastr,Javascript,Angularjs,Protractor,Toastr,Angular Toastr,摘要 在使用量角器测试AngularJS Web应用程序时,如何等待所有祝酒词消失 更多详细信息 我有一个AngularJS应用程序,我正在使用量角器进行测试。我使用angular toastr在应用程序中发生事件时显示通知 在测试中的某一点上,我无法单击某个按钮,因为toast当前正在阻止该按钮。我得到的错误是: 元素在点(898712)处不可单击。其他元素将收到单击:您可以等待元素不存在(或者不显示): 我在这篇博文中找到了一个出发点: 为了使用toastr,我对其进行了一些调整,结果是:

摘要

在使用量角器测试AngularJS Web应用程序时,如何等待所有祝酒词消失

更多详细信息

我有一个AngularJS应用程序,我正在使用量角器进行测试。我使用angular toastr在应用程序中发生事件时显示通知

在测试中的某一点上,我无法单击某个按钮,因为toast当前正在阻止该按钮。我得到的错误是:


元素在点(898712)处不可单击。其他元素将收到单击:您可以等待元素不存在(或者不显示):


我在这篇博文中找到了一个出发点:

为了使用toastr,我对其进行了一些调整,结果是:

var hasClicked = false;

browser.wait(function() {
    var deferred = protractor.promise.defer();

    var elements = element.all(by.className('toast'));
    var count = elements.count().then(function (result) {
        // If there are toasts active, click them to hide them faster.
        if (result > 0 && !hasClicked) {
            elements.click();
            hasClicked = true;
        }
        deferred.fulfill(result === 0);
    });

    return deferred.promise;
});

我将使用,ExpectedConditions:invisibilityOf/stalenessOf来验证doast是否不再存在于DOM中。
var hasClicked = false;

browser.wait(function() {
    var deferred = protractor.promise.defer();

    var elements = element.all(by.className('toast'));
    var count = elements.count().then(function (result) {
        // If there are toasts active, click them to hide them faster.
        if (result > 0 && !hasClicked) {
            elements.click();
            hasClicked = true;
        }
        deferred.fulfill(result === 0);
    });

    return deferred.promise;
});