Ответ 1
У меня есть метод для этого в С#.
public static IWebElement GetParent(IWebElement e)
{
return e.FindElement(By.XPath(".."));
}
Надеюсь, это поможет:)
У меня есть Тест, который ищет <span class="legend">
. На предыдущем уровне у меня есть набор полей, который содержит несколько значений. Вот моя проблема. Я не получаю локатор для этого набора полей.
Прежде всего, я получаю список со всеми объектами class=legend
:
List<WebElement> groupList = driver.findElements(By.className("legend"));
Это отлично работает, у меня есть список с несколькими веб-элементами.
Теперь я хочу перебрать этот список и сохранить каждое значение только из набора полей предыдущего уровня. Проблема в том, что Selenium не находит идентификатор поля.
Я попробовал tempGroupElement.getAttribute("id")
получить идентификатор, но он не работает.
Любая идея? Спасибо!
У меня есть метод для этого в С#.
public static IWebElement GetParent(IWebElement e)
{
return e.FindElement(By.XPath(".."));
}
Надеюсь, это поможет:)
Вы можете использовать WebElement.findElement(By.xpath("parent::*"))
Я пробовал, он работает в селене.
Это создаст расширение поверх 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();