W Selenium z Python jest możliwe, aby wszystkie dzieci WebElement jako listę?Selenium Python uzyskać wszystkie elementy dzieci
32
A
Odpowiedz
54
Tak, można to osiągnąć przez find_elements_by_css_selector("*")
lub find_elements_by_xpath(".//*")
.
Jednak to nie brzmi jak ważny przypadek użycia, aby znaleźć wszystkich dzieci danego elementu. Jest to kosztowna operacja, aby uzyskać wszystkie bezpośrednie/pośrednie dzieci. Proszę dalej wyjaśnić, co próbujesz zrobić. Powinien być lepszy sposób.
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.stackoverflow.com")
header = driver.find_element_by_id("header")
# start from your target element, here for example, "header"
all_children_by_css = header.find_elements_by_css_selector("*")
all_children_by_xpath = header.find_elements_by_xpath(".//*")
print 'len(all_children_by_css): ' + str(len(all_children_by_css))
print 'len(all_children_by_xpath): ' + str(len(all_children_by_xpath))
22
Tak, można użyć find_elements_by_
, aby pobrać elementy podrzędne do listy. Zobacz Wiązania Pythona tutaj: http://selenium-python.readthedocs.io/locating-elements.html
Przykład HTML:
<ul class="bar">
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
Można użyć find_elements_by_
tak:
parentElement = driver.find_element_by_class("bar")
elementList = parentElement.find_elements_by_tag_name("li")
Jeśli chcesz pomóc w konkretnym przypadku można edytować swój post z kodem HTML, z którego chcesz pobrać elementy rodzica i dzieci.
Powiązane problemy
- 1. Selen uzyskać wszystkie elementy w postaci
- 2. Pobierz wszystkie elementy ListView (wiersze)
- 3. jquery wybrać wszystkie elementy z wyjątkiem div i jego dzieci
- 4. Usuń wszystkie dzieci z QVBoxLayout
- 5. Java 8 uzyskać wszystkie elementy na liście
- 6. Jak uzyskać wszystkie elementy pracy w iteracji?
- 7. Jak uzyskać wszystkie elementy listy według instancji?
- 8. Wybierz wszystkie elementy na stronie
- 9. Python Selenium NiespodziewanyAlertPresentException
- 10. jQuery uzyskać następny element i wszystkie jego dzieci
- 11. Pętla przez wszystkie dzieci GroupView?
- 12. Multiprocessing and Selenium Python
- 13. Wszystkie dzieci na scenie/rodzic Obiekt
- 14. Jak zdobyć wszystkie dzieci kontroli nad rodzicami?
- 15. Python Urllib2 Cookiejar z Selenium
- 16. Czy Selen może oceniać wszystkie elementy XPath?
- 17. Python: uzyskać wszystkie miesiące w zasięgu?
- 18. Python i jak uzyskać tekst z obiektu WebElement elementu Selenium?
- 19. jak zdobyć wszystkie elementy ArrayAdapter?
- 20. Uzyskaj wszystkie elementy iframe
- 21. Implementuj wszystkie elementy interfejsu
- 22. Jak usunąć wszystkie inne elementy tablicy w python? (Odwrotność np.repeat()?)
- 23. Python: ustal, czy wszystkie elementy listy są tym samym obiektem.
- 24. pobierz wszystkie elementy określonego formularza
- 25. Python/Selenium incognito/tryb prywatny
- 26. Używanie rozszerzeń z Selenium (Python)
- 27. Jak uzyskać nagłówki odpowiedzi w Selenium?
- 28. Jak uzyskać wszystkie elementy o określonym atrybucie href?
- 29. Jak uzyskać wszystkie elementy określonego znacznika HTML w javascript?
- 30. Jak mogę uzyskać wszystkie elementy panelu w Java Swing?
+1: Świetnie! Używałem tylko 'driver.find_elements_by_' - nie przyszło mi do głowy, że mogę również użyć go na poszczególnych elementach, aby znaleźć tylko ich dzieci. – ArtOfWarfare
* find_element_by_class_name – Iorek