Ja, Sie können es durch find_elements_by_css_selector("*")
oder erreichen find_elements_by_xpath(".//*")
.
Dies klingt jedoch nicht nach einem gültigen Anwendungsfall, um alle untergeordneten Elemente eines Elements zu finden. Es ist eine teure Operation, alle direkten / indirekten Kinder zu bekommen. Bitte erläutern Sie weiter, was Sie versuchen zu tun. Es sollte einen besseren Weg geben.
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.stackoverflow.com")
header = driver.find_element_by_id("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))
.
Vorherige//
wichtig ist. Wenn der Punkt fehlt, durchsucht er erneut den gesamten HTML-Ja, Sie können
find_elements_by_
damit untergeordnete Elemente in eine Liste abrufen. Die Python-Bindungen finden Sie hier: http://selenium-python.readthedocs.io/locating-elements.htmlBeispiel HTML:
<ul class="bar"> <li>one</li> <li>two</li> <li>three</li> </ul>
Sie können Folgendes verwenden
find_elements_by_
:parentElement = driver.find_element_by_class_name("bar") elementList = parentElement.find_elements_by_tag_name("li")
Wenn Sie Hilfe in einem bestimmten Fall benötigen, können Sie Ihren Beitrag mit dem HTML-Code bearbeiten, aus dem Sie übergeordnete und untergeordnete Elemente abrufen möchten.
quelle
Eine andere Verehrung von
find_elements_by_xpath(".//*")
ist:from selenium.webdriver.common.by import By find_elements(By.XPATH, ".//*")
quelle
Hier ist ein Code zum Abrufen der untergeordneten Elemente (In Java):
String childTag = childElement.getTagName(); if(childTag.equals("html")) { return "/html[1]"+current; } WebElement parentElement = childElement.findElement(By.xpath("..")); List<WebElement> childrenElements = parentElement.findElements(By.xpath("*")); int count = 0; for(int i=0;i<childrenElements.size(); i++) { WebElement childrenElement = childrenElements.get(i); String childrenElementTag = childrenElement.getTagName(); if(childTag.equals(childrenElementTag)) { count++; } }
quelle