En Selenium con Python, ¿es posible obtener todos los elementos secundarios de un WebElement como una lista?
python
selenium
selenium-webdriver
walshie4
fuente
fuente
.
anterior//
es importante, si falta el punto, incluso si está llamando al método desde un elemento, nuevamente busque en todo el HTMLSí, puede utilizar
find_elements_by_
para recuperar elementos secundarios en una lista. Vea los enlaces de Python aquí: http://selenium-python.readthedocs.io/locating-elements.htmlHTML de ejemplo:
<ul class="bar"> <li>one</li> <li>two</li> <li>three</li> </ul>
Puedes usar el me
find_elements_by_
gusta así:parentElement = driver.find_element_by_class_name("bar") elementList = parentElement.find_elements_by_tag_name("li")
Si desea ayuda con un caso específico, puede editar su publicación con el HTML del que desea obtener elementos para padres e hijos.
fuente
Otra veneración de
find_elements_by_xpath(".//*")
es:from selenium.webdriver.common.by import By find_elements(By.XPATH, ".//*")
fuente
Aquí hay un código para obtener los elementos secundarios (en 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++; } }
fuente