我试图从网页获取 3 个值,将其中 2 个值相加(货币例如 $2,213.93),然后比较它是否等于第三个值。
Protractor 函数 locator.getText() 返回一个 promise ,我必须在 promise 内完成所有转换
这就是我尝试做的事情
从网页获取值(value)并将其转换:
SettingsPage.prototype.getValueAndConvert = function (locator) {
locator.getText().then(function (text) {
numb = text.replace(/,/g, '');
numb = numb.replace(/\$/g, '');
numb= numb.replace(/\./g, '');
numb = parseInt(numb);
console.log(numb);
return numb
});
};
断言值相等
var workingBalancevalue = settings.getValueAndConvert(workingBalanceField);
var totalInflowvalue = settings.getValueAndConvert(totalInflowField);
var totalOutflowvalue = settings.getValueAndConvert(totalOutflowField);
protractor.promise.all([totalInflowvalue, totalOutflowvalue, workingBalancevalue]).then(function (values) {
expect((values[0]) + (values[1])).toEqual(values[2]);
});
它可以工作,但是 console.log(numb) 的值是 NaN,所以这不是真的,因为它匹配 NaN 到 NaN
实际如何做?
最佳答案
答案是添加 promise 返回
SettingsPage.prototype.getValueAndConvert = function (locator) {
return locator.getText().then(function (text) { // added return
numb = text.replace(/,/g, '');
numb = numb.replace(/\$/g, '');
numb= numb.replace(/\./g, '');
numb = parseInt(numb);
console.log(numb);
return numb
});
};
关于Javascript Protractor 比较 promise 总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52431157/