如何有效地使用:not
在以下情况中选择元素:
<div class="parent">
<div class="a b c"/>
<div class="a"/>
</div>
我需要选择仅包含“a”类的div,并使用“a”,“b”和“c”类排除div
。
事情是我需要的类div
的数量因页面的每个负载而变化,因此必须使用查找div
的逻辑与类'a'并且没有类' b'和'c'
答案 0 :(得分:0)
您可以在java中按照以下示例代码。
WebElement elm = driver.findElement(By.className("parent"));
WebElement el = elm.findElement(By.xpath("//div[@class='a' and not(@class='a b c')]"));
el.click();
答案 1 :(得分:0)
这个XPath,
//div[@class="a"]
将选择所有div
个元素,class
属性等于 到"a"
。它将不选择div
元素,例如<div class="a b c"/>
。
实际上包含div
元素实际上更难,其中a
属于所选类别之一:
//div[contains(concat(' ', normalize-space(@class), ' '), ' a ')]
这需要选择<div class="a b c"/>
,而不是<div class="abc"/>