Стажер - функциональные тесты Поиск элемента с соответствующим потомком

Я пишу сценарий функционального теста, чтобы найти родительский элемент, у которого есть дочерний элемент, который можно найти, и, если потомок найден, вернуть родителя. Например:

<div class="contentPane">
    <h2>Heading 1</h2> 
    <p id="first">FIRST TEXT</p>
</div>
<div class="contentPane">
    <h2>Heading 2</h2>
    <p id="second">SECOND TEXT</p>
</div>
<div class="contentPane">
    <h2>Heading 2</h2>
    <p id="third"></p>
</div>

Я хочу найти панель содержимого, которая может найти абзац с идентификатором = "второй". Мой тестовый пример для поиска родителя похож на этот:

...
findAllCssSelector(".contentPane")
.then(function(array, setContext){
     //for every element i in array
    //I want to call its findByCssSelector(".second")
     //and check if it is found. If it is
    //I want to return the ith element in array
    // to the command. 
})
.findByTagName("h2")
.getVisibleText()
.then(function(text){
    assert.strictEqual(text, "Heading 2");
})
....
...

Как выполнить итерацию по каждому элементу массива и вернуть элемент массива в стек контекста?


person Jon    schedule 27.08.2015    source источник


Ответы (1)


Для сложных запросов Xpath обычно намного эффективнее, чем поиск элементов вручную. Вы можете запросить что-то вроде:

.findByXpath('//div[@class="contentPane" and p[@id="second"]]')

Это найдет первый DIV с классом «contentPane», который содержит P с идентификатором «второй».

person jason0x43    schedule 28.08.2015
comment
Большое спасибо jason0x43! - person Jon; 28.08.2015