首页 > 解决方案 > Webdriver 获取子列表并使用 xpath 过滤它

问题描述

我正在获取我的根 WebElement 的子项列表,如下所示:

WebElement listOfAddedBuildings = driver.getWebElement("//*[@id=\"right-list\"]/div/mat-list", 10);
List<WebElement> child = listOfAddedBuildings.findElements(By.xpath(".//*"));

但是现在它返回一个元素列表,包括我不需要的元素,我该如何修改它以过滤并仅返回包含“h3”标签但不包含“mat-icon”标签的元素,目前我只是这样做,但感觉不是最好的方式:

if (xPath.contains("h3") && !xPath.contains("mat-icon"))

谢谢你。

标签: seleniumtestingselenium-webdriverxpathautomation

解决方案


如果您想要h3后代但没有mat-icon后代的孩子,请尝试:

List<WebElement> child = listOfAddedBuildings.findElements(By.xpath("./*[.//h3 and not(.//mat-icon)]"));

推荐阅读