我们可以在 Selenium 中使用 CssSelectors 实现父子关系吗

Can we achieve parent child relationship with CssSelectors in Selenium

父子关系是否对 cssSelector 以及 selenium 有效 例子- 此 X 路径有效:

driver.findElement(By.xpath("//div[@class='gb_ke gb_i gb_Kg gb_Ag']/div[2]/a")).click();

但是这个 cssSelector 不是:

driver.findElement(By.cssSelector("div[class*='gb_ke gb_i gb_Kg gb_Ag']/div[2]/a")).click();

它给出错误:

An invalid or illegal selector was specified

CSS 选择器和 XPath 选择器具有不同的语法。

你的 xpath 是 By.xpath("//div[@class='gb_ke gb_i gb_Kg gb_Ag']/div[2]/a")

并且您应该相应地更新您的 CSS,例如

CSS By.cssSelector("div[class*='gb_ke gb_i gb_Kg gb_Ag'] div:nth-child(2) a")

and 开头遵循不同的语法。

cssSelector 定位器 xpath:

driver.findElement(By.xpath("//div[@class='gb_ke gb_i gb_Kg gb_Ag']/div[2]/a")).click();

根据流行的 HTML DOM:

driver.findElement(By.cssSelector("div.gb_ke.gb_i.gb_Kg.gb_Ag > div:nth-of-type(2) > a")).click();

driver.findElement(By.cssSelector("div.gb_ke.gb_i.gb_Kg.gb_Ag > div:nth-child(2) > a")).click();