我正在使用 Protractor 编写端到端测试,我想检查页面上的某些值是否计算正确。像这样非常简单的东西:
var var1 = element(by.binding('var1'));
var var2 = element(by.binding('var2'));
var var3 = element(by.binding('var3'));
expect(parseFloat(var1.getText())).toEqual(parseFloat(var2.getText()) +
parseFloat(var2.getText()));
但是,因为 var1、var2 和 var3 都是 promise,所以这是行不通的。
有没有办法将 promise 对象转换为字符串,以便我可以完成上述工作?
最佳答案
由于 promises 是异步的,您不能将它们转换为具有同步函数的 float 。所以,你需要解决它们。你可以这样做:
element(by.binding('var1').getText().then(function(text1) {
element(by.binding('var2').getText().then(function (text2) {
element(by.binding('var3').getText().then(function (text3) {
expect(parseFloat(text1)).toEqual(parseFloat(text2) + parseFloat(text3));
});
});
});
关于javascript - 如何将 Protractor 中的 promise 转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20213675/