Как получить индекс и ключ итератора, используя транспортир + угловой?
Есть ли способ получить доступ к индексу / ключу итератора при поиске элементов по повторителю?
protractor.By.repeater("(id,cat) in pets")
В этом случае я ищу, чтобы получить доступ к "id" кота. "Идентификатор" НЕ является одним из столбцов, отображаемых в качестве значения в таблице, он используется для навигации как ng-click="goto('/pets/'+cat.id)"
, В HTML нет привязки, такой как {{id}}
или же {{cat.id}}
сделав следующее:
ptor.findElements(protractor.By.repeater("(id,cat) in pets").column('cat.id'))
возвращает пустой элемент: []
Я также безуспешно пытался сделать что-то вроде:
ptor.findElement(protractor.By.repeater("(id,cat) in pets").row(0).column('cat.id'))
Как правильно получить доступ к этому конкретному индексу?
Вот краткий синтаксис ответа Jmr:
ptor.findElements(protractor.By.repeater('(id, cat) у домашних животных')).then(function (arr) { arr[0].evaluate('cat.id').then(function (id) { console.log(ID); }); });
1 ответ
Вы пытаетесь оценить то, чего нет на странице, поэтому методы 'row' и 'column' не будут работать. Если вы просто используете повторитель, вы получите массив всех строк. Затем вы можете использовать evaluate
Команда для оценки угловых выражений в контексте этого элемента. Например (используя сокращенный синтаксис),
element.all(by.repeater('(id, cat) in pets')).then(function(arr) {
arr[0].evaluate('cat.id'); // This is a promise which resolves to the id.
});