2016-11-18 1 views
1

Мой тестовый сценарий - это поиск фамилии и ожидаем, будут ли все имена в таблице равны значению поиска. У меня есть другая функция для поиска фамилии.Как сравнить список имен в таблице

Теперь я хочу получить все имена в таблице и проверить, имеют ли все имена одинаковое значение. Я хочу использовать следующую функцию в своем объекте страницы и использовать ее в ожидании в спецификации. Как это сделать?

Я смущен, как использовать GetText() и подтолкнуть их в массив и возвращает массив, так что я могу использовать его в ожидать

this.getAllBorrowerNamesInTable = function() { 
    element.all(by.binding('row.borrowerName')).then(function (borrowerNames){ 
    });   
}; 

ответ

-2

Вы можете использовать функцию JavaScript «толчок», чтобы добавить каждый имя заемщика, а затем мы можем вернуть этот массив;

this.getAllBorrowerNamesInTable = function() { 
var names = []; 
element.all(by.binding('row.borrowerName')).then(function (borrowerNames){ 
    borrowerNames.each(function(borrowerName) { 
     borrowerName.getText().then(function(name) { 
      names.push(name); 
     }); 
    }); 
}); 
return names;   
}; 
+0

это в значительной степени возвращает нулевой массив. Поскольку names.push происходит асинхронно FYI –

0

Я использую map() function, чтобы сделать работу:

this.getAllBorrowerNamesInTable = function() { 
    return element.all(by.binding('row.borrowerName')).map(function(elem) { 
     return elem.getText(); 
    )}; 
} 
1

Помимо использования map(), вы можете подойти к нему, просто вызывая getText() на ElementArrayFinder - результат element.all() вызова:

this.getAllBorrowerNamesInTable = function() { 
    return element.all(by.binding('row.borrowerName')).getText(); 
} 

Затем вы можете утверждать, что результат равен массиву строк:

expect(page.getAllBorrowerNamesInTable()).toEqual(["Borrower 1", "Borrower 2"]); 
+0

, я не знал, что getText() будет работать в elementArrayFinder ... Спасибо за информацию –

Смежные вопросы