2015-05-13 72 views
14

我一直在使用量角器時遇到一些麻煩。我有一個非常奇怪的UI路由器狀態,它很難脫離其他元素開始處理頁面。有沒有什麼辦法可以告訴量角器等到一個元素最終出現在DOM中?不可見/顯示,但實際創建?我一直試圖使用等待元素,但顯然不能被選中。量角器等待元素在DOM中

browser.driver.wait(function() { 
    return elem.isDisplayed(); 
}); 

回答

34

你應該能夠一起使用browser.waitpresenceOf ExpectedCondition

var until = protractor.ExpectedConditions; 
browser.wait(until.presenceOf(elem), 5000, 'Element taking too long to appear in the DOM'); 
+12

好主意,直​​到'!可讀性很重要。 – alecxe

+0

這是隻能從量角器2.0? –

+0

@ user2875134我不知道。 –

8

量角器已包括ExpectedCondition顯式等待,讓您等待元素一段時間。你應該能夠做到以下幾點

var EC = protractor.ExpectedConditions; 

browser.driver.wait(function() { 
    browser.wait(EC.visibilityOf(elem), 10000); 
    return elem; 
}); 
-1

browser.wait的第一個參數是一個函數,如果我們需要等待直到一個元素不管時間如何,那麼我們可以使用下面的代碼,如果您需要限制等待到特定時間,請給出時間作爲'browser.wait'的第二個參數

browser.wait(function() { 
    return element(by.css("#edudrop1")).isPresent()});