Selenium Webdriver(Java) - 在xpath中找到一个没有特定属性的元素

时间:2015-01-08 16:22:34

标签: java selenium

我有以下声明:

String v_name = "Computer";

String v_test1 = new WebDriverWait(Login.driver,10).until(ExpectedConditions.visibilityOfElementLocated
                (By.xpath("//span[.=\""+v_name+"\"]/following-sibling::span"))).getText();

我需要以某种方式获得没有style =“display:none;”的值。

<div class="test">
    <span>WIN-S38B7T042RC</span>
    <span style="display: none;>CLOSED</span>
    <span>OPENED</span>
    <span style="display: none;>CLOSED</span>
</div>

我不能使用span [1]等选项。

所以,我想找一些更灵活的选择。

类似于:/following-sibling::span **not in** style="display: none;"

2 个答案:

答案 0 :(得分:0)

XPath非常灵活;一种方式是这样的:

By.xpath("//span[not(contains(@style, 'display: none;'))]/")

或者甚至可能是这样的:

By.xpath("//span[not(@style)]/")

当然,您也可以使用类似于您尝试过的东西,例如

By.xpath("//span[/following-sibling::span/@style]/")

但这可能比必要的更复杂。

请注意,这些都没有经过测试,但它们应该在理论上有效。

答案 1 :(得分:0)

我建议你使用这个xpath,最简单,最简单的

//span[not(contains(@style, 'display: none;'))]