Javascript Protractor 比较 promise 总和

标签 javascript promise protractor

我试图从网页获取 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/

相关文章:

javascript - React 在每个 Material ui 选项卡开关上重新创建我的组件

javascript - sinon spy 不在具有异步功能的 stub 中调用

javascript - 以小并发批处理运行 Promise(一次不超过 X)

angularjs - Protractor 浏览器错误日志不完整

angularjs - Focus Protractor/Webdriver 浏览器测试窗口

javascript - jQuery 实时处理程序但对于每个()?

javascript - 仅对真实角色按下按键?

javascript - 即使有 When Promise 回调金字塔

javascript - 使用 Protractor 和 cucumberjs 选择单选按钮选项时出错

javascript - Ember 数据在模板中未定义,但可在控制台中访问