Selenium WebDriver如何从Span Tag验证Text

时间:2015-04-27 12:55:00

标签: html selenium xpath selenium-webdriver

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

<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"));

但这都不起作用。

任何帮助都会非常感激。感谢

更多代码:

<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

5 个答案:

答案 0 :(得分:3)

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

即'/ Company Home / IRP / tranzycja'

尝试以下代码

var app = angular.module('plunker', ['ngMessages']);

答案 1 :(得分:1)

您可以尝试使用xpath(&#39;某些文字&#39;可以替换为@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将找到第一个匹配元素,因此,如果有包含文本的span元素&#39;某些文本1&#39;以及某些文本2&#39;,则只会出现第一个匹配元素找到。)

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

答案 2 :(得分:0)

我认为你想要使用像

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

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

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

输出= /公司主页/ IRP / tranzycja