获取最后一个对象

时间:2014-04-28 20:09:03

标签: selenium xpath selenium-webdriver

在我的html页面中,有一个选项可以添加多个"资源标识"。当我添加一个新的时,它会创建一个包含以下元素的新行。

<tr>
<td width="150" valign="top">
<input type="hidden" name="expressions[0].checked"/>
<input type="hidden" value="B" name="expressions[0].expressionLabel"/>
<b>Resource Identity</b>
<input type="hidden" value="ResourceIdentity" name="expressions[0].parameterName"/>
<input type="hidden" value="ResourceIdentity" name="expressions[0].fieldName"/>
<input type="hidden" value="RF" name="expressions[0].fieldType"/>
<input type="hidden" value="" name="expressions[0].limitedValues"/>
</td>
</tr>


<tr>
<td width="150" valign="top">
    <input type="hidden" name="expressions[1].checked"/>
    <input type="hidden" value="B" name="expressions[1].expressionLabel"/>
    <b>Resource Identity</b>
    <input type="hidden" value="ResourceIdentity" name="expressions[1].parameterName"/>
    <input type="hidden" value="ResourceIdentity" name="expressions[1].fieldName"/>
    <input type="hidden" value="RF" name="expressions[1].fieldType"/>
    <input type="hidden" value="" name="expressions[1].limitedValues"/>
    </td>
    </tr>

如何找到<b>Resource Identity</b>的最后一次出现? 我试图通过使用下面的xpath找出标签上方的名称,但它始终评估为查找出现,因为selenium从上到下扫描html。

driver.findElement(By.xpath(//b[text() = 'Resource Identity']/preceding-sibling::input[1])).getAttribute("name").toString();

如果有多个&#34;资源标识&#34;,那么我该如何转到最后的资源标识&#34;并找到名字?

1 个答案:

答案 0 :(得分:1)

使用last()

(//b[text() = 'Resource Identity']/preceding-sibling::input[1])[last()]