避免使用带有量角器和aurelia框架e2e测试的browser.sleep

时间:2017-06-26 13:22:55

标签: protractor aurelia aurelia-cli

在aurelia js应用程序中使用量角器编写端到端(e2e)测试时,避免使用browser.sleep的最佳方法是什么?

或者是否有其他框架更适合使用aurelia进行e2e测试?

PS:我使用aurelia Cli和typescript

由于

2 个答案:

答案 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;
  });
};