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.

¿Es posible localizar un elemento por coincidencia parcial de la clase en Selenium?

Estoy comenzando con Selenium y estoy tratando de localizar el botón “Siguiente” en el sitio de CNN y, si no es la última página, hacer clic en él; de lo contrario, finalizar el programa.

El código HTML para el botón habilitado es:

<div class="pagination-arrow pagination-arrow-right cnnSearchPageLink text-active">
    "Siguiente"
    <i class="icon icon--arrow-right"></i>
</div>

El código HTML para el botón deshabilitado es:

<div class="pagination-arrow pagination-arrow-right text-deactive">
    "Siguiente"
    <i class="icon icon--arrow-right"></i>
</div>

¿Cómo debo abordar la solución? Intenté is_enabled() o encontrar parte del texto en el nombre de la clase, pero no tuve éxito. ¿Qué debo hacer?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para localizar el botón “Siguiente” en el sitio de CNN utilizando Selenium WebDriver, puede utilizar el siguiente enfoque:

    • Encuentre el elemento que representa el botón “Siguiente” utilizando su nombre de clase u otro selector (por ejemplo, XPath, selector de CSS, etc.).
    • Utilice el método is_enabled() para verificar si el botón se puede hacer clic o no. Si el botón no se puede hacer clic (es decir, deshabilitado), significa que ha llegado a la última página y debe finalizar el programa.
    • Si el botón se puede hacer clic (es decir, habilitado), haga clic en él para navegar a la siguiente página.

    Aquí hay un código de ejemplo en Python que puede utilizar para implementar este enfoque:

    from selenium import webdriver
    
    # configuración del webdriver
    driver = webdriver.Chrome()
    driver.get('https://www.cnn.com/search/?q=politics')
    
    # encuentra el elemento del botón "Siguiente"
    next_button = driver.find_element_by_css_selector('div.pagination-arrow-right')
    
    # verifica si el botón está habilitado
    if next_button.is_enabled():
        # haz clic en el botón para navegar a la siguiente página
        next_button.click()
    else:
        # finaliza el programa ya que estamos en la última página
        print('Se ha llegado a la última página')
    
    # cierra el webdriver
    driver.quit()
    

    Tenga en cuenta que el código anterior asume que ya ha navegado a la página de resultados de búsqueda en el sitio web de CNN. Si no es así, puede modificar el método get() del webdriver para ir a la URL de la página correcta. Además, si tiene problemas para encontrar el elemento del botón “Siguiente”, puede intentar utilizar selectores alternativos hasta que encuentre uno que funcione.

Comments are closed.