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;'))]
我有以下声明:
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;'))]