Estoy tratando de obtener un valor de 570 usando Python Selenium.
... <div _ngcontent-lci-c225="" class="mr-4 bd-highlight"> <span _ngcontent-lci-c225="" class="clickable ng-star-inserted" style="margin-right: 5px;">Bank</span> <!----> 570 </div>No estoy seguro de qué es y por qué cuando lo resalto en las herramientas de desarrollo de Chrome no me muestra nada en la ventana de estilos donde normalmente vería algo. Intenté buscar en Google para obtener el significado de sin éxito. Si alguien sabe por favor que me explique.
Mi código:
driver.find_element(By.XPATH, "/html/body/app-root/ng-component/div[4]/mat-drawer-container/mat-drawer-content/mat-grid-list/div/mat-grid-tile[2]/figure/app-inventory-menu/div/div[1]/div[2]/div[2]/span").get_attribute('innerHTML')Devuelve 'Banco' y no el valor numérico real que necesito. ¿No estoy seguro de qué más puedo hacer?
Gracias por la sugerencia, pude resolverlo.
driver.find_element(By.CSS_SELECTOR, "div.inventory-row:nth-child(1) > div:nth-child(2) > div:nth-child(2)").text.strip("Bank")Tal vez hay una mejor manera, pero funciona para mí.
Es porque el número no está contenido dentro del elemento <span> , sino en el elemento <div> que está encima. Según su código, el mejor selector que puedo encontrar es el Selector de CSS: "div.mr-4.bd-highlight"
parent = driver.find_element(By.CSS_ELECTOR,"mr-4.bd-highlight") child = parent.find_element(By.TAG_NAME,"span") print (parent.text.replace(child.text, ''))Intente eliminar el texto de intervalo. Sé que hay una forma mucho mejor que usar split.