Webdriver получает список детей и фильтрует его с помощью xpath - PullRequest
0 голосов
/ 22 октября 2018

Я получаю список дочерних элементов моего корневого 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"))

Спасибо.

1 Ответ

0 голосов
/ 22 октября 2018

Если вы хотите детей, которые имеют h3 потомка, но не имеют mat-icon потомка , попробуйте:

List<WebElement> child = listOfAddedBuildings.findElements(By.xpath("./*[.//h3 and not(.//mat-icon)]"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...