在aurelia js应用程序中使用量角器编写端到端(e2e)测试时,避免使用browser.sleep的最佳方法是什么?
或者是否有其他框架更适合使用aurelia进行e2e测试?
PS:我使用aurelia Cli和typescript
由于
答案 0 :(得分:0)
使用浏览器睡眠绝不是一个好主意,最好的办法是使用then函数等待一个元素,看看下面的示例代码。
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');
});
答案 1 :(得分:0)
有时,browser.sleep是不可避免的,但你想在任何可能的情况下尽量做到更聪明。
这是一个示例函数,如果调用它,它将等待具有类" toast-message"的元素。最多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;
});
}
相反的情况也是可能的 - 等待一些事情消失。在此示例中,对于具有类" modal-spinner"的元素,代码最多等待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;
});
};