Selenium 和 xpath:找到一个带有类/ID 的 div 并验证里面的文本
Posted
技术标签:
【中文标题】Selenium 和 xpath:找到一个带有类/ID 的 div 并验证里面的文本【英文标题】:Selenium and xpath: finding a div with a class/id and verifying text inside 【发布时间】:2013-09-05 09:49:40 【问题描述】:我正在尝试让 xpath
找到 div
并验证 div
内部是否有特定的 string
文本。
这是html
:
<div class="Caption">
Model saved
</div>
和
<div id="alertLabel" class="gwt-HTML sfnStandardLeftMargin sfnStandardRightMargin sfnStandardTopMargin">
Save to server successful
</div>
这是我目前正在使用的代码:
viewerHelper_.getWebDriver().findElement(By.xpath("//div[contains(@class, 'Caption' and .//text()='Model saved']"));
viewerHelper_.getWebDriver().findElement(By.xpath("//div[@id='alertLabel'] and .//text()='Save to server successful']"));
具体来说:
//div[contains(@class, 'Caption' and .//text()='Model saved']
//div[@id='alertLabel'] and .//text()='Save to server successful']
【问题讨论】:
【参考方案1】:要验证这一点:-
<div class="Caption">
Model saved
</div>
写这个-
//div[contains(@class, 'Caption') and text()='Model saved']
并验证这一点:-
<div id="alertLabel" class="gwt-HTML sfnStandardLeftMargin sfnStandardRightMargin sfnStandardTopMargin">
Save to server successful
</div>
写这个-
//div[@id='alertLabel' and text()='Save to server successful']
【讨论】:
只是好奇,有没有办法使用findElement(By.className("")
实现与上述相同的目标?如果是这样,要验证的文本会去哪里?谢谢。【参考方案2】:
要考虑前导和尾随空格,您可能需要使用normalize-space()
//div[contains(@class, 'Caption') and normalize-space(.)='Model saved']
和
//div[@id='alertLabel' and normalize-space(.)='Save to server successful']
请注意,//div[contains(@class, 'Caption') and normalize-space(.//text())='Model saved']
也可以使用。
【讨论】:
【参考方案3】:对于类和文本 xpath-
//div[contains(@class,'Caption') and (text(),'Model saved')]
和
对于类和 id xpath-
//div[contains(@class,'gwt-HTML') and @id="alertLabel"]
【讨论】:
第一个 xpath 无效(用 FirePath 检查)以上是关于Selenium 和 xpath:找到一个带有类/ID 的 div 并验证里面的文本的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Xpath、css 或 Selenium 中的任何其他定位器在 html 中的结束标记后查找带有“== $0”的元素
Python Selenium 无法使用 Selenium 和 Python 在#shadow-root (open) 中通过 xpath 找到元素
Internet Explorer 的 Selenium 问题:org.openqa.selenium.NoSuchElementException:无法使用 xpath 找到元素