以下是我的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)"));
对于如何使用id='platinum'
答案 0 :(得分:4)
有一个空的td
没有ID,这会干扰:nth-of-type()
计数。选择器的意思是“第n td
个元素”,而不是“td
元素的第id='platinum'
个元素”。因此,具有该ID的第三个td
实际上是整行中的第四个td
。
使用CSS选择器无法选择具有特定ID的第三个td
元素。你应该使用XPath:
driver.findElement(By.xpath("//td[@id='Platinum'][3]"));
答案 1 :(得分:0)
首先,好吧。你不能有几个同名的id。你应该使用类。然后你可以使用相同的方法再次尝试,但使用类。 代码如下所示:
<td class="Platinum" align="center" width="16%">
答案 2 :(得分:0)
添加,如果你在JQuery中尝试过这个,你可能会得到相同的结果。 “#id”可能是使用document.getElementByID()函数的快捷方式,它只返回带有ID的第一个元素,因为ID在给定文档中是唯一的。