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.

Python Selenium: Usando css, ¿cómo puedo hacer una declaración if else?

Estoy tratando de hacer un if else que comprueba si existe el CSS.

Si el primer CSS no existe, debería hacer clic en el segundo CSS.

Esto es lo que tengo:

<h1>SENTENCIA IF</h1>

<pre><code>  driver.find_element_by_css_selector('.GA_Track_Action_Download-FullHD-1080p > .movieQuality').click()
</code></pre>

<h1>SENTENCIA ELSE</h1>

<pre><code>  driver.find_element_by_css_selector('.GA_Track_Action_Download-4K-2160p > .movieQuality').click()
</code></pre>

Lo que intenté:

if is_element_exist(driver, '.GA_Track_Action_Download-FullHD-1080p > .movieQuality'):
      driver.find_element_by_css_selector('.GA_Track_Action_Download-FullHD-1080p > .movieQuality').click()

else:
      driver.find_element_by_css_selector('.GA_Track_Action_Download-4K-2160p > .movieQuality').click()

No parece estar funcionando.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Hay algunas cosas que podrían estar causando que este código no funcione como se espera. Aquí hay algunos consejos para ayudarte a solucionar el problema:

    1. Verifica la función is_element_exist: Esta función no está incluida en el fragmento de código que proporcionaste, por lo que es difícil determinar si está funcionando correctamente. Asegúrate de que esta función esté implementada correctamente y esté devolviendo un valor booleano que indique si el elemento existe o no.
    2. Elimina el carácter >: Este carácter no es necesario en el selector CSS y podría estar causando problemas. Intenta eliminarlo de ambos selectores CSS.

    3. Usa la declaración try/except: En lugar de usar una declaración if/else, podrías usar una declaración try/except para manejar el caso en el que el primer selector CSS no exista. Aquí tienes un ejemplo:

    try:
        driver.find_element_by_css_selector('.GA_Track_Action_Download-FullHD-1080p .movieQuality').click()
    except:
        driver.find_element_by_css_selector('.GA_Track_Action_Download-4K-2160p .movieQuality').click()
    

    Este código intentará hacer clic en el primer selector CSS y, si falla (es decir, el elemento no existe), pasará al bloque except y hará clic en el segundo selector CSS.

    1. Verifica errores de ortografía y sensibilidad a mayúsculas y minúsculas: Asegúrate de que los selectores CSS estén correctamente escritos y en mayúsculas. Los selectores CSS distinguen entre mayúsculas y minúsculas, por lo que si hay errores de ortografía o errores de capitalización en tu código, podría hacer que los selectores no coincidan con ningún elemento en la página.

    En general, hay muchas cosas que podrían estar causando que este código no funcione correctamente. El uso de los consejos de solución de problemas anteriores debería ayudarte a identificar el problema y lograr que tu código funcione como se espera.

Comments are closed.