Найдите предка с определенным классом. Селен. Веб-драйвер. Использование XPath

#java #selenium #testing #ancestor

Вопрос:

Я пытаюсь найти запрос XPath, чтобы получить предка моего элемента, который является a div с a class='row publication-detail teaser' .

В настоящее время я делаю следующее :

 element.findElements(By.xpath("//ancestor::div[@class='row publication-detail teaser']"));
 

Проблема в том, что он возвращает всех братьев и сестер div[@class='row publication-detail teaser'] . И мне нужен только тот, кто является моим предком стихий.

Что я делаю не так?

Комментарии:

1. Я думаю, я нашел первую проблему: я должен был начать с ./ относительного пути, я думаю, что он начинает искать везде, когда вы начинаете // . Это не решило мою проблему полностью. Для тех, кто может быть замешан в теме — я нашел классную шпаргалку: devhints.io/xpath

Ответ №1:

Вы почти правы, но findElements вместо этого дадите вам список элементов, которые вы используете findElement

попробуйте заменить свой код следующим образом :

 element.findElement(By.xpath("your web element here from where you want to go to ancestor, then use ancestor like this //ancestor::div[@class='row publication-detail teaser']"));