XPath根据类选择元素

时间:2017-12-07 14:59:25

标签: java html xml selenium xpath

如何有效地使用:not在以下情况中选择元素:

<div class="parent">
    <div class="a b c"/>
    <div class="a"/>
</div>

我需要选择仅包含“a”类的div,并使用“a”,“b”和“c”类排除div。  事情是我需要的类div的数量因页面的每个负载而变化,因此必须使用查找div的逻辑与类'a'并且没有类' b'和'c'

2 个答案:

答案 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"/>