Допустим, у меня есть следующая структура DOM для простоты:
<div class='myparent'>
<div class='child'>
<div class="label">A</div>
<div class="ico"/>
</div>
<div class='child'>
<div class="label">B</div>
<div class="ico"/>
</div>
<div class='child'>
<div class="label">C</div>
<div class="ico"/>
</div>
</div>
Я хотел бы зациклиться на всех элементах child
, возвращаемых функцией findAllByCssSelector('.child'). В частности, я бы нажимал на подэлемент div ico
ТОЛЬКО, если label
div равен B.
Я бы запомнил, что findAllByCssSelector()
возвращает Promise.<Array.<leadfoot/Element>>
.
Обычно я должен сделать что-то вроде:
var my_label = null;
this.remote
.findAllByCssSelector('.my-selector').then(function (elementArray) {
for(.....) {
elementArray[i]
.getVisibileText()
.then(function (text) {
if(text == my_label)
elementArray[i].findByCssSelector('.ico').click().end()
}
}
})
Я попробовал этот код, но он не сработал, потому что elementArray[i]
в функции getVisibleText().then()
не существует - как будто я теряю ссылку. Кроме того, мне также нужно, чтобы, если метка не была найдена в конце цикла, было создано исключение.
Как я могу этого добиться? Кто-нибудь может помочь, пожалуйста?