Javascript Protractor Сравните итоговые обещания - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь получить 3 значения с веб-страницы, суммировать их 2 (в валютах, например, $ 2 213,93) и сравнить, если оно равно третьему значению.

Функция транспортира locator.getText () возвращает обещаниеи я должен сделать все преобразования внутри обещания

Вот как я пытался это сделать

Получить значение с веб-страницы и преобразовать его:

    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

Как на самом деле это сделать

1 Ответ

0 голосов
/ 20 сентября 2018

ответом было добавить возврат обещания

 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
         });
        };
...