Java XPATH:排除具有特定子级的元素

Java XPATH:排除具有特定子级的元素,java,selenium,selenium-webdriver,xpath,Java,Selenium,Selenium Webdriver,Xpath,但显然,这不起作用删除包含的,并使用/而不是/ ./li[not(contains(descendant::div] 搜索未包含子项的li标记的Xpath: //li[not(descendant::div)] 另一种选择: //li[not(descendant::div)] 要从选择中排除某些元素,请使用not()方法,如locator[not(条件)] 此表中的一些更复杂的示例: 这是一个定位器,它获取的行中没有以“C”开头的文本的元素 说明: //表[@id='customers'

但显然,这不起作用

删除
包含的
,并使用
/
而不是
/

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

搜索未包含子项的
li
标记的Xpath:

//li[not(descendant::div)]
另一种选择:

//li[not(descendant::div)]
要从选择中排除某些元素,请使用
not()
方法,如
locator[not(条件)]

此表中的一些更复杂的示例: 这是一个定位器,它获取的行中没有以“C”开头的文本的元素

说明:

//表[@id='customers']//tr
-获取所有行

[不(./*[…])]
-不包含具有特定属性的元素

[以(text(),'C')开头]
-并且描述的属性

这对我有用

您的代码:

./li[not(包含(后代::div]

缺少一些“'),应该是:

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

关于
li[0]
li[1]
如何使用xpath//ul/li/a/。请添加关于这些语句的作用的解释,这有助于提问者做很多事情(他们实际上做了主题中要求的事情)-排除具有特定子级的元素。好的,我会补充一些解释
//li[not(.//div)]
//table[@id='customers']//tr[not(.//*[starts-with(text(),'C')])]
//li[not(contains(div,' '))]
./li[not(contains(descendant::div))]