javascript - 将 Angularjs Protractor promise 从字符串转换为 float ?

标签 javascript angularjs promise karma-runner protractor

我正在使用 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/

相关文章:

javascript - 箭头函数语法用括号而不是花括号?

javascript - 如何计算对象属性已更改的次数

javascript - 是否可以制作一个按钮作为文件上传按钮?

javascript - 在服务中使用 promise 但不返回 promise

angularjs - 如何防止 Angular-ui 模式关闭?

javascript - Angular/Ionic 框架 Google map (带选项卡)

javascript - 验证用户身份并同时将其添加到数据库

javascript - 如何避免 `addEventListener` 和 `window.open` 之间的竞争条件

javascript - 使用 promise 中的值的异步函数

javascript - Angular JS 中的 Promise 对象未呈现错误