Java Selenium仅选择WebElement的直接子级

Java Selenium仅选择WebElement的直接子级,java,selenium,selenium-webdriver,css-selectors,Java,Selenium,Selenium Webdriver,Css Selectors,有没有什么方法可以做到: webElement.findElements(By.cssSelector(“>li”); 我试图获取WebElement对象的直接子对象 我知道css选择器“parent>children”,它可以正常工作,但我的情况不同 例如: List webElements=driver.findElements(By.cssSelector(“ul.x>li”); 仅返回ul标记的直接子级。 列表的大小为2。 但我有下一个用例: WebElemen

有没有什么方法可以做到:

webElement.findElements(By.cssSelector(“>li”);
我试图获取WebElement对象的直接子对象

我知道css选择器“parent>children”,它可以正常工作,但我的情况不同

例如:

List webElements=driver.findElements(By.cssSelector(“ul.x>li”);
仅返回ul标记的直接子级。 列表的大小为2。 但我有下一个用例:

WebElement-WebElement=driver.findElement(By.cssSelector(“ul.x”);
webElement.findElements(由.cssSelector(“li”);
这里的问题是,此代码返回所有“li”web元素,而不仅仅是直接子元素。这次列表的大小是3

我试过这个:

webElement.findElements(By.cssSelector(“>li”);
但这是一个错误

org.openqa.selenium.InvalidSelectorException:无效选择器:指定了无效或非法的选择器

您可以使用xpath:

WebElement webElement = driver.findElement(By.cssSelector("ul.x"));
webElement.findElements(By.xpath("./li");

谢谢!这就解决了我的问题。你认为有没有一种方法可以使用css选择器来实现这一点?谢谢。它帮了我很大的忙