Скажем, у меня есть следующая структура DOM, для простоты:Intern:.. Петля на Promise <Массив <Лэдфут/Элемент >>
<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 ('. ребенок). В частности, я хотел бы нажать на 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()
не существует - это как я теряю свою ссылку. Кроме того, мне также нужно, чтобы, если метка не найдена в конце цикла, должно быть выбрано исключение.
Как я могу это достичь? Может ли кто-нибудь помочь, пожалуйста?
Итак? Просто поместите цикл в ответный вызов. Вы знаете, как получить доступ к массиву? Пожалуйста, опубликуйте свою текущую попытку кода (даже если она не работает) – Bergi