Используйте Promise.all , чтобы подождать, пока все обещания не будут решены:
var licenceNumber = 233521673;
it('should open created Driver Licence', function() {
var rowNumber = null;
var rows = element.all(by.repeater('(rowRenderIndex, row) in rowContainer.renderedRows track by $index'));
var promises = [];
rows.each(function(element, index) {
var promise = element.getText().then(function (text) {
if (text.includes(licenceNumber)) {
rowNumber = index;
}
});
promises.push(promise);
});
return Promise.all(promises).then(function () {
console.log('rowNumber = ', rowNumber);
});
});
Обратите внимание, что обещание, связанное с Promise.all, также возвращается в Mocha. Это важно, поскольку он сообщает Mocha, что этот тест асинхронный и не будет считаться завершенным, пока возвращенное обещание не разрешит или не отклонит. Подробнее об этом здесь .