如何在具有相同css的多个元素中进行选择?

如何在具有相同css的多个元素中进行选择?,css,selenium,xpath,Css,Selenium,Xpath,我的页面上有多个web元素,它们的span标记和类名为“nav label”。我正在使用SeleniumWebDriver自动化我的应用程序,我需要使用cssSelector定位器检查第三个这样的元素。我可以通过创建一个XPath轻松地实现这一点。我想知道是否可以使用CSS等效选择器 网站元素: <span class="nav-label">sometext</span> sometext 当我将CSS写成CSS=.nav label时,检查器显示有3个这样的元素。

我的页面上有多个web元素,它们的span标记和类名为“
nav label
”。我正在使用SeleniumWebDriver自动化我的应用程序,我需要使用cssSelector定位器检查第三个这样的元素。我可以通过创建一个XPath轻松地实现这一点。我想知道是否可以使用CSS等效选择器

网站元素:

<span class="nav-label">sometext</span>
sometext
当我将CSS写成
CSS=.nav label
时,检查器显示有3个这样的元素。现在我想选择第三个。我如何使用Css实现它

通过将xpath编写为
(//span[@class='nav-label'])[3]


是否存在与上述XPath等价的CSS?

使用CSS选择器无法实现您想要实现的目标

将得到最接近的项目,但仅在兄弟姐妹之间进行计算,不会在级别之间找到第n个项目

您可以使用CSS选择器来标识该类中的所有元素,然后过滤选择第三个节点,但这样效率不高,需要更多的代码来维护


如果您可以使用XPath
(//span[@class='nav-label'])[3]
并且它对您有效,那么请坚持使用该XPath表达式。

您可以使用
:第n个子元素(3)
选择第三个元素,第n个子元素将给我父元素下的第三个子元素。在我的例子中,所有这些跨度标签都不在同一个父项下。所以您只需要页面上所有当前导航标签中的第三个元素导航标签?请你澄清一下,我以为你想选择所有的第三元素导航标签内或不是家长。如果您希望在DOM中获得类为
.nav label
的第三个元素,则无论标记结构如何,都没有这样的选择器。单独使用CSS是不可能的。使用JavaScript,您可以使用
document.getElementsByClassName(“nav标签”)
并获取第三个元素。这听起来像一个。编辑您的问题并询问实际问题,而不是寻求帮助解决问题。你想做什么?OP似乎在寻找Css的替代方案
(//span[@nav-label'])[3]
,如果没有父级
:nth-of-type()
,将不会有效。我的观点是,nth-of-type()不起作用,而且没有纯CSS表达式可以选择所需的元素并使用xpath,因为问题的CSS替代方案不存在。