13

给定

<table>
  <tr>
    <td>service1</td>
  </tr>
  <tr>
    <td>service2</td>
  </tr>
  <tr>
    <td>service3</td>
  </tr>
  <tr>
    <td>blip</td>
  </tr>
</table>

当我不知道 n 是什么时,如何选择最后一个“service-n”行?我试过添加[last()],但没有奏效。

我有:

//table//tr//td[contains(text(),'service')]

但它选择了第一行,我想要最后一行。
我不能使用tr[3],因为实际上“service-n”行的数量是动态的并且变化很大。

4

5 回答 5

18

答案正是我把 [last()] 放在了错误的地方

它在这里:

//div[@id='content']//table//tr[last()]//td[contains(text(),'service')][last()]/following-sibling::td[2]

不在这里:

//div[@id='content']//table//tr[last()]//td[contains(text(),'service')]/following-sibling::td[2][last()]
于 2013-04-03T13:32:35.940 回答
2

通过这种方式尝试使用 cssSelector。

By.cssSelector("table tr:last-child td")
于 2013-04-03T13:55:16.613 回答
1
List<WebElement> allElement=fd.findElements(By.xpath("//table//td[contains(.,'service')]");
int count=allElement.size();
allElement.get(count-1).click();
于 2016-08-29T11:43:23.060 回答
1
<table id="table1">
 <tbody>
  <tr id="tr1">
   <td id="td1"></td>
   <td id="td2"></td>
  <tr>
  <tr id="tr2">
   <td id="td3"></td>
   <td id="td4"></td>
  <tr>
 <tbody>
</table>

然后以最后一个 tr 的最后一个 td 为目标,我们可以将 xpath 设置为:xpath="//table[@id='table1']//tr[last()]//td[last()]";

于 2019-07-30T18:48:18.020 回答
0
(//div[@id='name'])[last()]

通过使用我们可以获得相关字段的最后一个元素。

//div[@id='name'][last()]

多个元素在最后

于 2022-01-13T03:58:29.567 回答