如何检测Jasmine / Protractor中的期望是否失败

时间:2015-01-02 19:03:48

标签: angularjs jasmine protractor e2e-testing

我正在尝试测试一个页面,一旦页面完成加载,就会生成服务器端RSA密钥对生成,这需要在我当前设置的5到20秒之间。在浏览器收到密钥对之前,不允许用户执行任何操作。

我一直在使用browser.sleep(),但是如果在5中生成密钥对则等待20秒是令人讨厌的。我尝试使用Protractor的evaluate()方法作为while循环条件,但实现了evaluate()返回一个ElementFinder而不是参数的值。是否有一种方法允许Jasmine / Protractor以相同的方式计算布尔值Jasmine评估toBe / toEqual / etc?

简而言之,

expect(controller.evaluate('data.step1.done')).toBe(true);

计算一个布尔值,相当于Angular范围内的evaluate()参数的值,它与“true”进行比较。有没有办法使用该计算值或自己计算?

1 个答案:

答案 0 :(得分:2)

这里的想法是使用browser.wait()等待模糊内容消失:

browser.driver.wait(function() {
    return !browser.driver.isElementPresent(by.css(".blurred"));
}, 20000)
.then(
  function() {
    // success code
  },
  function() {
    // fail code
  }
);

在这种情况下,它会等待最多 20秒。在模糊内容消失后,它会停止等待。