如果使用webdriver和css,元素不在同一级别,如何找到第n个元素?

时间:2012-12-20 09:26:28

标签: webdriver selenium-webdriver

我尝试自动化的页面在不同级别有相同的按钮。这n个按钮具有相同的属性。可以说,如果我想点击第二个,我怎么能用webdriver和CSS来做,谢谢。

2 个答案:

答案 0 :(得分:1)

例如说,唯一属性是class ='custom_button',你可以使用

List <WebElement> custButtons = driver.findElements(By.className("custom_button"));
custButtons.get(2).click();

这将点击页面上类名为“custom_button”的第三个按钮。

答案 1 :(得分:1)

Prashant Shukla有正确的答案。


无论如何,如果你想用一个命令在一行上完成它:

我不知道如何使用单个CSS选择器(即使像:nth-child()这样的伪选择器也不允许这样做)。但有人可能知道答案。我可以提出的是一个XPath选择器。诀窍是使用descendant轴。

例如,如果您想在页面上选择第二个<a class='post-tag'>元素(恰好是此页面上的webdriver标记:)),无论其他什么,您都可以:

driver.findElement(By.xpath("/descendant::a[@class='post-tag'][2]"));