CSS选择器-如何定位父元素

问题描述 投票:0回答:4

有没有办法在CSS选择器中定位父元素? 我正在使用下面的代码,但我没有获取父元素。

WebElement we=dr.findElement(By.cssSelector("div[id='gf-BIG']:parent"));

我知道 XPath 有一种方法,但请让我知道如何在 CSS 选择器中找到父级。

selenium xpath selenium-webdriver css-selectors webdriver
4个回答
20
投票

参考CSS有父选择器吗?主题,有CSS中没有父选择器。将“获取父级”部分留给 XPath:

WebElement we = dr.findElement(By.cssSelector("div[id='gf-BIG']"));
WebElement parent = we.findElement(By.xpath(".."));

1
投票

如果有帮助,这里是如何通过 xpath 获取它的示例

WebElement parentElement = driver.findElement(By.xpath("//div[@id='gf-BIG']/parent::parentElementTag"));

parentElementTag - 可以是 div/span/tr - 取决于您的情况


1
投票

如果父级是 div,你可以尝试如下所示

div div[id='gf-BIG']

0
投票

我们无法使用 CSS 选择器来查找父元素。它在 Selenium 社区中有详细记录。

  1. CSS 为兄弟姐妹提供支持
  2. CSS 为儿童提供支持
  3. CSS 通过 :has() 函数为具有特定子元素的元素提供支持。

但是,我们无法使用CSS找到父元素。

不用说 - CSS 选择器是查找元素的最佳方式,就性能而言。

© www.soinside.com 2019 - 2024. All rights reserved.