У меня есть переменная, которая является классом By
. Я хочу позвонить FindElements
, чтобы вернуть соответствующий элемент, а также все родительские элементы этого By
. Как мне это сделать?Как найти все родительские элементы, используя Selenium C# WebDriver?
4
A
ответ
5
Если я правильно понял ваш вопрос, вы хотите найти элемент By
, а затем родители до корня.
Вы можете просто использовать XPath, чтобы получить родительский элемент, пока не дойдете до корня страницы. Так что-то вроде этого:
public ReadOnlyCollection<IWebElement> FindElementTree(By by)
{
List<IWebElement> tree = new List<IWebElement>();
try
{
IWebElement element = this.driver.FindElement(by);
tree.Add(element); //starting element
do
{
element = element.FindElement(By.XPath("./parent::*")); //parent relative to current element
tree.Add(element);
} while (element.TagName != "html");
}
catch (NoSuchElementException)
{
}
return new ReadOnlyCollection<IWebElement>(tree);
}
При желании вы можете остановиться на body
элементе вместо html
один.
Также обратите внимание, что это довольно медленно, особенно если его глубоко вложенный элемент. Более быстрая альтернатива заключалась бы в использовании ExecuteScript
для запуска фрагмента javascript, который использует ту же логику, а затем возвращает все элементы сразу.
Смежные вопросы
- 1. Как найти родительские элементы python webdriver?
- 2. Selenium webdriver: Как найти ВСЕ атрибуты элемента?
- 3. Как заставить Selenium Webdriver сфокусироваться (используя C#)?
- 4. Найдите только скрытые элементы, используя Selenium WebDriver в C#
- 5. Найти все родительские элементы с абсолютным положением
- 6. Не удается найти элементы через Selenium webdriver?
- 7. Найти вложенные элементы в selenium webdriver (Java)
- 8. Найти элемент, созданный javascript, используя selenium webdriver
- 9. Найти номер строки таблицы, используя selenium webdriver
- 10. Найти элементы по названию класса C# Selenium webdriver
- 11. ExpandableListView сворачивает все родительские элементы
- 12. Selenium WebDriver: не удалось найти элемент (C#)
- 13. selenium найти все элементы с определенным атрибутом
- 14. Webdriver Selenium C# - не удается найти элемент
- 15. Как получить все «ли» элементы класса «ul» в Selenium WebDriver
- 16. Как правильно найти элементы веб-страницы с помощью Selenium Webdriver?
- 17. Selenium - C# - Webdriver - Не удается найти элемент
- 18. Найти ссылку в selenium webdriver
- 19. Как прокрутить элемент с помощью Selenium WebDriver, используя C#
- 20. Получить отличительные родительские элементы, используя Lambda
- 21. Найти элемент для Selenium WebDriver
- 22. Python selenium webdriver. Найти элементы с именем указанного класса
- 23. Как дважды щелкнуть элемент, используя Selenium Webdriver
- 24. Найти элемент в selenium webdriver
- 25. Selenium WebDriver не может найти элементы на странице
- 26. Как получить элементы iframe в selenium webdriver?
- 27. selenium webdriver C# многопоточность
- 28. Нажмите на гиперссылку, используя Selenium Webdriver
- 29. Selenium: Найти соседние элементы
- 30. Selenium webdriver: Как найти вложенные теги?