2017-04-13 145 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); 
相關問題