我正在使用 Angular.js Protractor 来检查网格中单元格的值。我能够获取这些值,但它们是字符串,我想用它们进行计算。
当我尝试这样做时:
ptor.findElements(protractor.By.className('ngCellText')).then(function(cells) {
expect(parseFloat(cells[16].getText())).toEqual(parseFloat(cells[14].getText()) / parseFloat(cells[11].getText()));
});
我收到错误:Expected NaN to equal NaN。
我读到 promises 是异步的,你不能用同步函数转换它们,所以我尝试了这个:
element.all(by.className('ngCellText')).then(function(text1) {
element.all(by.className('ngCellText')).then(function (text2) {
element.all(by.className('ngCellText')).then(function (text3) {
expect(parseFloat(text1[16].getText())).toEqual(parseFloat(text2[14].getText()) + parseFloat(text3[11].getText()));
});
});
});
我得到同样的错误:Expected NaN to equal NaN。
如果有人能帮助我,那就太好了!
最佳答案
试试这个,既然我们知道 getText()
返回一个 promise :
cells[16].getText().then(function (cellValue) {
console.log(cellValue); // This should give you '1.40'
var floatVal = parseFloat(cellValue);
console.log(floatVal); // This should give you 1.4
expect(floatVal).toBe(1.4);
});
关于javascript - 将 Angularjs Protractor promise 从字符串转换为 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22814651/