量角器检查模态是否关闭。 browser.waitForAngular

时间:2016-11-02 01:58:50

标签: angularjs protractor

我想在角度引导模式上单击取消按钮。这应该关闭它所做的模态。我想测试模态不再可见,我正在使用WebElement.isDisplayed()promise。我注意到如果我 NOT 使用browser.waitForAngular我的测试将不会通过。以下代码 DOES 工作(我已经定义了自己的页面对象)

variableExpenseModal.cancel();
browser.waitForAngular();
expect(variableExpenseModal.modalIsDisplayed()).toEqual(false);

这是测试这个的正确方法吗?我应该使用browser.waitForAngular吗?或者我错过了某种方式使用promises来做到这一点?请指教。

1 个答案:

答案 0 :(得分:2)

我的问题的解决方法是删除conf.js(config)文件中的动画。

onPrepare: function () {        

    // Disable animations so e2e tests run more quickly
    //this will also prevent failure that are intermittent due to transitions
    var disableNgAnimate = function () {
        angular.module('disableNgAnimate', []).run(['$animate', function ($animate) {
            $animate.enabled(false);
        }]);
    };

    browser.addMockModule('disableNgAnimate', disableNgAnimate);
}

正是Modal的过渡/动画造成了我的问题。我也更好地使用isPresent()而不是isDisplayed()。当我这样做时,我能够删除browser.waitForAngular()

it('click the save button and the modal should not be displayed', () => {
    variableExpenseModal.save();
    expect(variableExpenseModal.isPresent()).toEqual(false);
});

注意:我的代码使用的是页面对象。