Selenium WebDriver 如何验证来自 Span 标签的文本

Selenium WebDriver how to verify Text from Span Tag

我正在尝试使用 WebDriver 验证跨度中的文本。有跨度标签:

<span class="value">
    /Company Home/IRP/tranzycja
</span>

我试过这样的事情:

driver.findElement(By.xpath("//span[@id='/Company Home/IRP/tranzycja']'"));
driver.findElement(By.cssSelector("span./Company Home/IRP/tranzycja"));

但 none 这项工作。

任何帮助将不胜感激。谢谢

更多代码:

<span id="uniqName_64_0" class="alfresco-renderers-PropertyLink alfresco-renderers-Property pointer small" data-dojo-attach-point="renderedValueNode" widgetid="uniqName_64_0">
    <span class="inner" tabindex="0" data-dojo-attach-event="ondijitclick:onLinkClick">
    <span class="label">
        In folder: 
    </span>
    <span class="value">
        /Company Home/IRP/tranzycja
    </span>
</span>

uniqName 不应该是一个目标,因为它们很多而且它们在变化。

有一个完整的 html 代码: http://www.filedropper.com/spantag

我想你会想要使用像

这样的东西
driver.findElement(By.xpath("//span[@id='/Company Home/IRP/tranzycja'])).getText();

getText();将获取该范围内的文本

找到 <span> 元素的一个可能的 xpath :

//span[normalize-space(.) = '/Company Home/IRP/tranzycja']

这里我假设您正在尝试验证 span 标签中的文本。

即'/公司Home/IRP/tranzycja'

试试下面的代码

String expected String = "/Company Home/IRP/tranzycja";

String actual_String = driver.findElement(By.xpath("//span[@class='alfresco-renderers-PropertyLink alfresco-renderers-Property pointer small']//span[@class='value']")).getText();

if(expected String.equals(actual_String))

{

System.out.println("Text is Matched");

}

else

{

System.out.println("Text is not Matched");

}

您可以尝试使用 xpath('some text' 可以像@Rupesh 建议的那样用变量替换):

driver.findElement(By.xpath("//span/span[@class='value'][normalize-space(.) = 'some text']"))

driver.findElement(By.xpath("//span/span[@class='value'][contains(text(),'some text')]"))

(请注意,此 xpath 将找到第一个匹配元素,因此如果存在包含文本 'some text 1' 和 'some text 2' 的 span 元素,只会找到第一个匹配项。)

当然,如果在页面上找不到元素(带有定义的文本),这两个方法将抛出 NoSuchElementException。如果您正在使用 Java 并且如果需要,您可以轻松捕获该错误并打印正确的消息。

您可以在 Xpath 中使用 text() 方法。我希望这能解决您的问题

String str1 = driver.findElement(By.xpath("//span[text()='/Company Home/IRP/tranzycja']")).getText();
System.out.println("str1");

输出=/公司Home/IRP/tranzycja