es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Automatización utilizando Selenium, incapaz de buscar dentro de listas de diferentes versiones.

Quería buscar una versión particular de seldon-core (1.7.0) (https://pypi.org/). He llegado (usando selenium) hasta la página de historial de lanzamientos (https://pypi.org/project/seldon-core/#history) pero no pude buscar una versión específica (1.7.0).

Quería buscar en toda la lista (todas las versiones están contenidas en la lista) una coincidencia de versión.

PD: la lista tiene un id de div llamado “historia” y además tiene subclases en las que se menciona el número de versión.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para buscar una versión particular de Seldon-core (1.7.0) en la página de historial de versiones de PyPI utilizando Selenium y Python, se puede utilizar el módulo webdriver para navegar a la página, localizar la lista que contiene todas las versiones (que tiene un div id de “history”), e iterar sobre los elementos de la lista para encontrar una coincidencia con la versión deseada.

    Este es un ejemplo de código para demostrar la aproximación:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # crea una nueva instancia del navegador Chrome
    driver = webdriver.Chrome()
    
    # navega a la página del proyecto Seldon-core en PyPI
    driver.get("https://pypi.org/project/seldon-core/#history")
    
    # espera a que se cargue la lista de versiones
    version_list_elem = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "history")))
    versions = version_list_elem.find_elements_by_tag_name("li")
    
    # itera sobre la lista y busca una coincidencia con la versión 1.7.0
    match = None
    for version in versions:
        if "1.7.0" in version.text:
            match = version
            break
    
    # si se encuentra una coincidencia, imprime el enlace a la página de lanzamiento para esa versión
    if match is not None:
        link = match.find_element_by_tag_name("a").get_attribute("href")
        print(f"Se encontró la versión 1.7.0 en {link}")
    else:
        print("No se encontró la versión 1.7.0")
    

    Este código utiliza WebDriverWait para esperar a que aparezca el elemento de lista con id “history” en la página, y luego encuentra todos los elementos de lista (versiones) dentro de esa lista. Luego itera sobre las versiones y busca una coincidencia con el número de versión deseado (en este caso, “1.7.0”). Si se encuentra una coincidencia, extrae el enlace a la página de lanzamiento para esa versión y lo imprime en la consola. Si no se encuentra ninguna coincidencia, imprime un mensaje que lo indica.

Comments are closed.