2017-07-06 54 views
0
<ul> 
<li><a></li> 
<li><a></li> 
<li><div><a></div></li> 
</ul> 

元素如何選擇只有前2級的物品,並排除包含內部DIV?XPATH:排除其具有特定的孩子

考慮UL設置爲父母,我已經試過

./li[not(contains(descendant::div] 

但顯然沒有奏效

+0

如何關於'li [0]'和'li [1]' –

+0

嘗試使用xpath // ul/li/a/.. – Murthi

回答

3

取出contains和使用//代替./

//li[not(descendant::div)] 
0

Xpath搜索li標籤還沒有div孩子:

//li[not(descendant::div)] 

另一種選擇:

//li[not(.//div)] 

從選擇中排除某些元素 - 在這個表上https://www.w3schools.com/css/css_table.asp使用not()方法類似locator[not(condition)]

一些更復雜的例子: 這裏是定位器獲得沒有內部元素的文本以「C」開頭的行

//table[@id='customers']//tr[not(.//*[starts-with(text(),'C')])] 

解釋:

//table[@id='customers']//tr - 得到所有行

[not(.//*[...])] - 不包含元素具有特定屬性

[starts-with(text(),'C')] - 並且所描述的屬性

+0

做了一些關於這些語句的解釋,它可以幫助提問者很多 – jwenting

+0

他們做其實在主題中提出的問題) - 排除有特定孩子的元素。好吧,我會添加一些解釋 –

0
//li[not(contains(div,' '))] 

這適用於我。

代碼:

./li[not(contains(descendant::div]

缺少一些 ')',應該是:

./li[not(contains(descendant::div))] 
相關問題