如何检测期望是否在 Jasmine/Protractor 中失败
How to detect whether an expectation failed in Jasmine/Protractor
我正在尝试测试一个页面,该页面一旦完全加载完毕,就会在服务器端生成 RSA 密钥对,这在我当前的设置下需要 5 到 20 秒。在浏览器收到密钥对之前,不允许用户执行任何操作。
我一直在使用 browser.sleep(),但如果密钥对是在 5 中生成的,则等待 20 秒很烦人。我尝试使用 Protractor 的 evaluate() 方法作为 while 循环条件,但意识到 evaluate() returns 是一个 ElementFinder 而不是参数的值。是否有一种方法允许 Jasmine/Protractor 以与 Jasmine 计算 toBe/toEqual/etc 相同的方式计算布尔值?
简而言之,
expect(controller.evaluate('data.step1.done')).toBe(true);
计算一个布尔值,相当于 Angular 范围内 evaluate() 的参数值,它与 "true" 进行比较。有没有办法使用该计算值或自己计算?
这里的思路是用browser.wait()
等待模糊内容消失:
browser.driver.wait(function() {
return !browser.driver.isElementPresent(by.css(".blurred"));
}, 20000)
.then(
function() {
// success code
},
function() {
// fail code
}
);
在这种情况下,它将等待 最多 20 秒。模糊内容消失后会立即停止等待
我正在尝试测试一个页面,该页面一旦完全加载完毕,就会在服务器端生成 RSA 密钥对,这在我当前的设置下需要 5 到 20 秒。在浏览器收到密钥对之前,不允许用户执行任何操作。
我一直在使用 browser.sleep(),但如果密钥对是在 5 中生成的,则等待 20 秒很烦人。我尝试使用 Protractor 的 evaluate() 方法作为 while 循环条件,但意识到 evaluate() returns 是一个 ElementFinder 而不是参数的值。是否有一种方法允许 Jasmine/Protractor 以与 Jasmine 计算 toBe/toEqual/etc 相同的方式计算布尔值?
简而言之,
expect(controller.evaluate('data.step1.done')).toBe(true);
计算一个布尔值,相当于 Angular 范围内 evaluate() 的参数值,它与 "true" 进行比较。有没有办法使用该计算值或自己计算?
这里的思路是用browser.wait()
等待模糊内容消失:
browser.driver.wait(function() {
return !browser.driver.isElementPresent(by.css(".blurred"));
}, 20000)
.then(
function() {
// success code
},
function() {
// fail code
}
);
在这种情况下,它将等待 最多 20 秒。模糊内容消失后会立即停止等待