使用xpath获取并打印元素

时间:2013-12-04 09:57:43

标签: javascript xpath webdriver selenium-webdriver

<table id="versionId" class="displayTable" cellspacing="0" cellpadding="0" rules="groups" style="width:100%;border-right:1px solid #DFDFDF;border-left:1px solid #DFDFDF;">
<caption class="displayCaption">
<thead>
<tbody>
<tr class="rowOdd">
<td style="width:1%">
<td style="width:15%;">
<span class="font">1</span>
</td>
<td style="width:12%">
<td style="width:10%">
<td style="width:10%">
<td style="width:13%">
<td style="width:18%">
=======

我能以任何方式获得1并打印出来吗?

我尝试了这个.//*[@id='versionId']/tbody/tr/td[2]/span/text()

System.out.println(driver.findElement(By.xpath(".//*[@id='versionId']/tbody/tr/td[2]/span/text()")));

它返回我的错误:

给定的选择器.// [@ id ='versionId'] / tbody / tr / td [2] / span / text()无效或不会产生WebElement。发生以下错误: InvalidSelectorError:xpath表达式的结果“.// [@ id ='versionId'] / tbody / tr / td [2] / span / text()”是:[object XrayWrapper [object Text]] 。它应该是一个元素。

帮助D:

1 个答案:

答案 0 :(得分:4)

在你的xpath中你得到的是文本,而不是元素。要查找元素,您可以使用以下xpath://span[@class='font']

如果您需要打印文本,那么代码应该是:

System.out.println(driver.findElement(By.xpath("//span[@class='font']")).getText())