2017-04-13 48 views
0

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

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

它引发异常。

回答

0

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

  • 元素(<选择>)。触发器( “模糊”)
  • 元素(<选择>)。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); 
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);