从匹配节点列表中选择第n个匹配节点

时间:2011-10-05 17:48:48

标签: selenium css-selectors

我正在使用selenium来执行一些自动化操作,并且我尝试使用Selenium& amp; CSS选择器。

我的问题是如何选择从所有匹配节点列表返回的第n个匹配节点?

例如我的CSS选择器是" .contactName"返回2个匹配的节点。使用Selenium我想做类似

的事情
selenium.Click("css=.contactName the second match");

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

这是我最终使用的,以便选择具有类名

的第二个输入
selenium.Click("xpath=(//input[@class='contactName'])[2]");

答案 1 :(得分:2)

这两个节点共享同一个父节点吗?如果是这样,您可以尝试其中一种,具体取决于它们在DOM中的父级位置以及是否存在任何其他类型的元素:

selenium.Click("css=.contactName:nth-child(2)");
selenium.Click("css=.contactName + .contactName");
selenium.Click("css=.contactName ~ .contactName");

如果这两个节点不共享同一个父节点,则可能需要使用XPath定位器而不是CSS:

selenium.Click("xpath=//*[@class='contactName'][2]");