У меня возникли проблемы, когда я пытаюсь выполнить итерацию с помощью транспортира. Это мой код:Как использовать итератор с помощью транспортира?
var accountNumber = 2;
var accountsInfo = [{name: 'Hugo Marin', bank: 'Banco Capital', accountNumber: '43543'},
{name: 'Hugo Marin', bank: 'Banco de Loja', accountNumber: '12345'}];
var accounts = element.all(by.repeater('bankAccount in bankPersonCtrl.otherBanksAccounts'));
expect(accounts.count()).toBe(accountNumber);
for (var i = 0; i < accountNumber; i++) {
accounts.get(i).getText().then(function(text) {
text = text.split('\n');
var name = text[0];
var bank = text[1];
var accountNumber = text[2];
console.log('i is: ' + i);
expect(name).toEqual(accountsInfo[i].name);
expect(bank).toEqual(accountsInfo[i].bank);
expect(accountNumber).toEqual(accountsInfo[i].accountNumber);
});
}
Я думаю, что логика верна, но я получаю
Failed: Cannot read property 'name' of undefined
Кроме того, вместо того, чтобы в console.log('i is:' + i);
==>i is: 0
, я получаю i is: 2
,
Что я пытался сделать, это получить каждый элемент в ретрансляторе, поэтому я могу сравнить текст, который у них есть.