3

下面是我的 HTML 页面的片段:

<td id="Platinum" align="center" width="16%">
    <div></div> 
    <a>link1</a>
</td>
<td></td>
<td id="Platinum" align="center" width="16%">
    <div></div>
    <a>link2</a>
</td>
<td id="Platinum" align="center" width="16%">
    <div></div>
    <a>link3</a>
</td>

在这里,我想选择 id='platinum' 的第三个 td 元素

我尝试的是driver.findElement(By.cssSelector("#platinum:nth-of-type(3)"));

driver.findElement(By.cssSelector("td[id='platinum']:nth-of-type(3)"));

两者都没有关于如何选择第三个 td 的任何想法id='platinum'

4

3 回答 3

4

有一个td没有ID的空,干扰:nth-of-type()计数。选择器的意思是“nth tdelement”,而不是“nth tdelement with id='platinum'”。因此,具有该 ID的第三个td实际上是td整行中的第四个。

无法td使用 CSS 选择器选择具有特定 ID 的第三个元素。您应该改用 XPath:

driver.findElement(By.xpath("//td[@id='Platinum'][3]"));
于 2013-01-17T09:51:39.617 回答
0

好吧,首先。你不能有多个同名的ID。你应该使用类。然后您可以使用相同的方法再次尝试,但使用类。代码将如下所示:

<td class="Platinum" align="center" width="16%">
于 2013-01-17T09:48:52.603 回答
0

补充一下,如果你在 JQuery 中尝试过这个,你可能会得到相同的结果。“#id”可能是使用 document.getElementByID() 函数的快捷方式,该函数只会返回带有 ID 的第一个元素,因为 ID 在给定文档中是唯一的。

于 2013-12-19T11:33:18.947 回答