我想在角度引导模式上单击取消按钮。这应该关闭它所做的模态。我想测试模态不再可见,我正在使用WebElement.isDisplayed()promise。我注意到如果我 NOT 使用browser.waitForAngular我的测试将不会通过。以下代码 DOES 工作(我已经定义了自己的页面对象)
variableExpenseModal.cancel();
browser.waitForAngular();
expect(variableExpenseModal.modalIsDisplayed()).toEqual(false);
这是测试这个的正确方法吗?我应该使用browser.waitForAngular吗?或者我错过了某种方式使用promises来做到这一点?请指教。
答案 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);
});
注意:我的代码使用的是页面对象。