2015-10-06 122 views
2

我正在使用量角器進行e2e測試。目前我正在使用很多工作流程超時。我想用browser.wait替換它。問題是我並不總是知道該等什麼。例如當切換到其他幀時。 這個特定的問題是等待中繼器元素顯示。 這是我當前的代碼:量角器 - 等待中繼器元素

flow.timeout(5000); 

    element.all(by.repeater('whatsNewItem in homePageWhatsNewItems')).count().then(function (firstCount) { 

    console.log("number of WhatsNew=" + firstCount); 
    expect(firstCount >= 5).toBeTruthy(); 
    }); 

我想更換flow.timeoutbrowser.wait(.....) 什麼想法?

回答

4

如果您知道要等待哪個元素,則易於使用量角器的ExpectedConditions等待元素出現在頁面上。下面是如何 -

var EC = protractor.ExpectedConditions; 
var repeaterElement = element(by.repeater('whatsNewItem in homePageWhatsNewItems')); 

//Wait up to 10 seconds for elements to be visible 
browser.wait(EC.visibilityOf(repeaterElement), 10000) 
.then(function(){ 
    //Perform any operation that you want after waiting for the element to appear 
}); 

如果你不知道要等到哪個元素,然後檢查元素,在結束負載總是和等待元素出現。通過這種方式,可以避免錯誤。希望能幫助到你。

+0

看起來像它的作品。謝謝!只有一件事 - 它應該是'element(by.repeater ...') - 不包括'all' – user2880391

+0

@ user2880391更新了代碼我認爲你的HTML DOM中有許多中繼器,如果它幫助你把它標記爲答案,謝謝。 –