Как я могу использовать getText (), чтобы утверждать, что текст элементов в массиве содержит строку? - PullRequest
0 голосов
/ 12 января 2019

Я получаю сообщение об ошибке при попытке подтвердить текст, найденный в массиве элементов

 AssertionError: expected [ Array(1) ] to include 'This profile exists already and has two places.'

я объявил ссылку на webelement в объектном файле страницы

я создал шаг, содержащий некоторый код для проверки текста в массиве элементов

Это ссылка на webelement, объявленная в объекте страницы:

get importErrorsList(){
    return element.all(by.css('[ng-if="error.error.detailMessage"]'));
}

Вот так я пытаюсь проверить текст в массиве веб-элементов

                directoriesPageObj.importErrorsList.getText().then(function(text) {         
                    console.log('test console output: ' + text);
                    expect(text).to.contain(errorText);
                    callback();
                });

актуально: я получаю ошибку подтверждения

Ожидаемый результат: тест успешно пройден.

обратите внимание, что в коде для шагов у меня есть фрагмент console.log, который выводит строку, в которой содержит содержит строку для поиска: вывод тестовой консоли: com. reputation.imex.imp.ImportException: этот профиль уже существует и имеет два места. Использование импорта CSV не поддерживается для этого профиля

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Вот что у меня сработало в итоге:

expect(directoriesPageObj.importErrorsList.getText()).to.eventually.contain(errorText).and.notify(callback);

0 голосов
/ 12 января 2019

importErrorsList возвращает ElementArrayFinder.

Если приложение может вернуть только один элемент, соответствующий cc selecror, измените ваш метод на:

get importErrorsList(){
    return element.all(by.css('[ng-if="error.error.detailMessage"]'));
}

Но если для вас нормально получить ElementArrayFinder, измените expect на:

expect(text).to.deep.contain(errorText);

...