<ul>
<li><a></li>
<li><a></li>
<li><div><a></div></li>
</ul>
如何只选择前2个项目并排除包含div的 li ?
考虑 ul 设置为父级,我已尝试
./li[not(contains(descendant::div]
但显然那不起作用
答案 0 :(得分:3)
删除contains
并使用//
代替./
//li[not(descendant::div)]
答案 1 :(得分:2)
搜索没有li
子标记的div
标记的Xpath:
//li[not(descendant::div)]
另一种选择:
//li[not(.//div)]
要从选择中排除某些元素,请使用not()
locator[not(condition)]
方法
此表set上的一些更复杂的示例: 这里是一个定位器,它获取没有元素的行,文本以&#34开头; C&#34;
//table[@id='customers']//tr[not(.//*[starts-with(text(),'C')])]
解释:
//table[@id='customers']//tr
- 获取所有行
[not(.//*[...])]
- 不包含具有特定属性的元素
[starts-with(text(),'C')]
- 以及描述的属性
答案 2 :(得分:0)
//li[not(contains(div,' '))]
这适合我。
您的代码:
./的Li [否(含有(后裔:: DIV]
缺少一些&#39;)&#39;,应该是:
./li[not(contains(descendant::div))]