我们可以在 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")
以 xpath and css-selectors 开头遵循不同的语法。
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();
父子关系是否对 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")
以 xpath and css-selectors 开头遵循不同的语法。
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();