等待ui-select选择量角器e2e测试

时间:2017-04-13 17:27:06

标签: protractor

我有一个带有文本框和ui-select下拉的表单,在ng-blur事件中我正在调用一种方法来自动选择所有三个ui-selection中的选项。当我使用量角器e2e测试时,它不会等待ui-choices发生并提交抛出异常的表单,因为它没有找到仅在提交具有所有必需字段的表单后才会出现的元素。我已经尝试过浏览器。像这样

browser.wait(()=>{
         expect(element(by.model('cntrl.selectOne')) ).toEqual('OneFirst');
         expect(element(by.model('cntrl.selectTwo')) ).toEqual('TwoFirst');
},2000)

它正在抛出异常。

2 个答案:

答案 0 :(得分:0)

您是否在触发ng-blur事件?您可以尝试单击文本框,然后单击其他位置。或者你可以尝试

  • 元件(小于选择&GT)。触发器( “模糊”)
  • 元件(小于选择&GT)。triggerHandler( “模糊”)

在等待中,如果您知道自己在等什么,请使用presenceOf

var EC = protractor.ExpectedConditions;
// Waits for the element with id 'abc' to be present on the dom.
browser.wait(EC.presenceOf($('#abc')), 5000);

答案 1 :(得分:0)

我已经制作了一个辅助函数,就像这个

this.waitForTimeouts = function(el, time) {
        browser.wait(function() {
            return element(by.css(el)).isPresent();
        }, time);
};

 e = '.md-active.md-clickable';
 this.waitForTimeouts(e, 3000);

这似乎对我有用。 (与您所写的内容非常接近,但您没有返回该元素。

此外,更简单的形式是:

  browser.wait(function() {
            return element(by.css('.md-active.md-clickable')).isPresent();
  }, 3000);