Pio*_*ler 6 xpath css-selectors selector
我们可以在xpath中使用:position()来修改简单HTML块中的第n个元素,如下所示:
<ul>
<li>first</li>
<li>second</li>
<li>third</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我们可以查询元素,//li[position()=2]但是在这种情况下这不起作用:
<ul>
<b><li>first</li></b>
<b><li>second</li></b>
<b><li>third</li></b>
</ul>
Run Code Online (Sandbox Code Playgroud)
我们必须使用//b[position()=2]/li.
问题是我想为我的selenium测试创建一个用于nth-element的XPath规则,它不会与decoarational标签紧密结合.我需要一个XPath,即使在使用其他标签装饰munth-elements时也能正常工作.
我知道出于测试目的,我可以更改后端逻辑以在html中提供额外的测试句柄,例如data-*属性,但是假设我无法更改测试中的app代码.
所以,我正在搜索XPath查询,如:"给我第三个<li>元素,无论它放在指定的页面(或页面块)中,即使它是多次嵌套的"
cho*_*oba 14
注意[position()=3]可以缩短为[3].那么你的问题的答案是
(//li)[3]
Run Code Online (Sandbox Code Playgroud)
该位置与括号返回的节点列表有关.