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

Selenium Webdrive (Java) - find an element in xpath where is no specific attribute

我有以下声明:

String v_name = "Computer";

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

我需要以某种方式获得没有样式的值="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;"

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

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

或者甚至可能是这样的:

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

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

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

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

请注意,其中 none 个已经过测试,但它们在理论上应该有效。

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

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