我正在编写一个功能测试脚本来查找可以找到子节点的父元素,如果找到了后代,则返回父节点。例如:
<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>
我想找到可以找到id =“second”的段落的contentPane。我找到父母的测试用例与此类似:
...
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");
})
....
...
如何遍历每个数组元素并将数组元素返回到上下文堆栈?
答案 0 :(得分:1)
对于复杂查询,Xpath通常比手动搜索元素更有效。您可以使用以下内容进行查询:
.findByXpath('//div[@class="contentPane" and p[@id="second"]]')
这将找到第一个带有“contentPane”类的DIV,其中包含一个ID为“second”的P。