Próbuję potwierdzić, że nazwa jest wyświetlana w kolumnie tabeli. Napisałem funkcję inResults
, która będzie iterować tekst w kolumnie, aby sprawdzić, czy istnieje nazwa. Oto, co usiłuję: obiektJak sprawdzić, czy tekst znajduje się w kolumnie w Kątomierz
strony:
this.names = element.all(by.repeater('row in rows').column('{{row}}'));
this.inResults = function(nameString) {
var foundit = '';
this.names.each(function(name) {
name.getText().then(function(it) {
console.log(it); // each name IS printed...
if(it == nameString) {
console.log('it\'s TRUE!!!!'); // this gets printed...
foundit = true;
}
});
});
return foundit; // returns '' but should be true?
};
Spec spodziewać:
expect(friendPage.inResults('Jo')).toBeTruthy();
Obydwa oświadczenia konsoli drukować zgodnie z oczekiwaniami ... ale mój oczekiwać nie jako foundit
„s wartość jest nadal ''
. Próbowałem tego na wiele sposobów i żaden z nich nie działa. czego mi brakuje?
Główny problem polega na tym Zachowanie asynchroniczne javascript, funkcja zwraca wartość przed wykonaniem pętli for. –