2

我正在尝试测试一个页面,一旦页面完全加载完成,就会生成服务器端 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 范围内评估()的参数的值,它与“真”进行比较。有没有办法使用该计算值或自己计算它?

4

1 回答 1

2

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

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

在这种情况下,它将等待长达20 秒。模糊内容消失后,它将立即停止等待。

于 2015-01-05T19:33:24.937 回答