2017-06-26 71 views
1

在aurelia js應用程序中使用量角器測試端到端(e2e)測試時避免使用browser.sleep的最佳方法是什麼?避免使用browser.sleep與量角器和aurelia框架e2e測試

或者是否有任何其他框架更適合eurea e2e測試?

PS:我用奧裏利亞CLI和打字稿

感謝

+0

我認爲你是在與量角器http://博客的正確軌道。 aurelia.io/2015/02/16/end-to-end-testing-with-aurelia-and-protractor/ – RobPethi

+0

好的;但如何避免使用browser.sleep()? –

+0

你能舉一個關於你確切的問題是什麼的代碼示例。它可能在app/testscript中,所以目前還不清楚如何回答你的問題。 – wswebcreation

回答

0

使用瀏覽器的睡眠從來都不是一個好主意,做的最好的事情是使用再發揮作用這樣做等因素,採取看下面的示例代碼。

element(by.xpath("xpath")).click().then(function(){ 
     var list = element(by.id('id')); 
     var until = protractor.ExpectedConditions; 
     browser.wait(until.presenceOf(list), 80000, 'Message: took too long'); 
    }); 
0

有時候browser.sleep是不可避免的,但是你想要嘗試並儘可能地更聰明。

下面是一個例子函數,其中,如果被調用時,它會等待與類「烤麪包的消息」的元素最多30秒:

var WaitForToast = function(timeout = 30000) { 
    var el = element(by.css('.toast-message')); 
    var EC = protractor.ExpectedConditions; 
    browser.wait(EC.presenceOf(el), timeout).then(function(){ 
    return; 
    }); 
} 

相反的情況也是可能的 - 等待東西消失。在這個例子中,代碼等待最多15秒,類「模態微調」的元素消失:

var WaitForModalSpinner = function(timeout = 15000) { 
    var el = element(by.css('.modal-spinner')); 
    var EC = protractor.ExpectedConditions; 
    browser.wait(EC.not(EC.presenceOf(el)), timeout).then(function(){ 
    return; 
    }); 
};