Selenium 仅选择 WebElement 的直接子级

有没有办法做类似的事情:


webElement.findElements(By.cssSelector("> li");

我正在尝试获取 WebElement 对象的直接子对象。


我知道 css 选择器“父>子”并且它按预期工作,但我的情况不同。


例如:


<ul class="x">

    <li>

        <ul>

            <li>

            </li>

        </ul>

    </li>


    <li>

    </li>

</ul>

List<WebElement> webElements = driver.findElements(By.cssSelector("ul.x > li"));

仅返回 ul 标记的直接子子级。列表的大小是 2。但我有下一个用例:


WebElement webElement = driver.findElement(By.cssSelector("ul.x"));

webElement.findElements(By.cssSelector("li");

这里的问题是,此代码返回所有“li”Web 元素,而不仅仅是直接子元素。这次List的大小是3。


我试过这个:


webElement.findElements(By.cssSelector("> li");

但这会引发错误


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


侃侃尔雅
浏览 106回答 1
1回答

撒科打诨

您可以使用 xpath:WebElement&nbsp;webElement&nbsp;=&nbsp;driver.findElement(By.cssSelector("ul.x")); webElement.findElements(By.xpath("./li");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java