Подтвердить что ты не робот

Как получить родительский тег HTML с Selenium WebDriver с помощью Java

У меня есть Тест, который ищет <span class="legend">. На предыдущем уровне у меня есть набор полей, который содержит несколько значений. Вот моя проблема. Я не получаю локатор для этого набора полей.

Прежде всего, я получаю список со всеми объектами class=legend:

List<WebElement> groupList = driver.findElements(By.className("legend"));

Это отлично работает, у меня есть список с несколькими веб-элементами.

Теперь я хочу перебрать этот список и сохранить каждое значение только из набора полей предыдущего уровня. Проблема в том, что Selenium не находит идентификатор поля.

Я попробовал tempGroupElement.getAttribute("id") получить идентификатор, но он не работает.

Любая идея? Спасибо!

4b9b3361

Ответ 1

У меня есть метод для этого в С#.

public static IWebElement GetParent(IWebElement e)
{
   return e.FindElement(By.XPath(".."));
}

Надеюсь, это поможет:)

Ответ 2

Вы можете использовать WebElement.findElement(By.xpath("parent::*"))

Я пробовал, он работает в селене.

Ответ 3

Это создаст расширение поверх IWebElement, которое позволит вам вызвать GetParent непосредственно на дочернем IWebElement

public static class MyExtensions
{
    public static IWebElement GetParent(this IWebElement node)
    {
        return node.FindElement(By.XPath(".."));
    }
}  

Пример использования...

IWebElement node = WebDriver.FindElement('..');
IWebElement parent = node.GetParent();