Невозможно вернуть массив, содержащий значения столбцов из таблицы ag-grid обратно в функцию
Я написал функцию, которая читает данный столбец в ag-grid и сохраняет его в массиве.
getSortedText(columnName: string){
var testArrayAsc = [];
element.all(by.css('div.ag-body-container > [role="row"]')).then(function(count) {
console.log("Row Count= ", Object.keys(count).length);
for (let rowNo = 0; rowNo < Object.keys(count).length; rowNo++) {
element.all(by.css(String.Format("div.ag-body-container div[ row-index='{0}'] > [col-id='{1}']", rowNo, columnName))).map(function (Element) {
Element.getText().then(function (result) {
console.log("Result Asc :: " + result);
testArrayAsc.push(result);
});
})
}
}).then(function () {
console.log("TestArrayAsc::",testArrayAsc);
return testArrayAsc;
})
}
Я вызываю эту функцию из моего теста:
console.log('Array::', homepage.getSortedText('Betreff'));
Но я получаю "Array:: undefined" в качестве вывода.
И если я изменю свой код следующим образом:
homepage.getSortedText('Betreff').then(function (a) {
})
Затем я получаю это сообщение об ошибке в IDE: "Свойство then" не существует по типу "void" ".
Пожалуйста помоги. Заранее спасибо.
1 ответ
Решение
getSortedText
ничего не возвращает, следовательно, это тип void и не имеющий then
метод.
Там очень много недостающей информации, но отправной точкой является возвращение созданного вами Обещания.
return element.all(