我正在尝试使用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
答案 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