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.

No es posible hacer clic en un botón en el marco de trabajo de Selenium con Python y BDD.

No puedo hacer clic en un botón (Guardar) en Selenium Webdriver en el marco BDD.

Puedo hacer clic en el script generalmente, pero cuando ejecuto el mismo script a través del marco BDD, no funciona, por favor ayúdame con esto.

<button data-id="save-button" aria-label="Guardar" type="button" class="inline-flex items-center font-bold border rounded transition duration-300 ease-out hover:bg-primary-700 active:bg-primary-800 bg-primary-600 button-normal text-white justify-center text-base border-primary-600 px-4" style="background-image: linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));">Guardar</button>

He intentado con los siguientes códigos:

element = self.driver.find_element(By.XPATH,"/html/body/div[1]/div/div/div/div[1]/div/div[2]/div[2]/button[2]")
self.driver.execute_script("arguments[0].click();", element)

element = WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable(By.XPATH, "//button[text()='Borrar todos los cambios']/following::button[@data-id='save-button']")).click()
self.driver.execute_script("arguments[0].click();", element)

self.driver.find_element_by_xpath("/html/body/div[1]/div/div/div/div[1]/div/div[2]/div[2]/button[2]").click()

actions.click(self.driver.find_element_by_xpath("/html/body/div[1]/div/div/div/div[1]/div/div[2]/div[2]/button[2]")).perform()
actions.move_to_element(button).click(button).perform()

self.driver.find_element_by_class_name('inline-flex items-center font-bold border rounded transition duration-300 ease-out hover:bg-primary-700 active:bg-primary-800 bg-primary-600 button-normal text-white justify-center text-base border-primary-600 px-4').click()

ele = self.driver.find_element_by_css_selector("button[data-id='save-button']").click()
ele.click()

He perdido más de dos días en este botón. El mismo elemento funciona con la ejecución de script normal sin usar ningún framework.

Script funcional a continuación:

self.driver.find_element_by_xpath("/html/body/div[1]/div/div/div/div[1]/div/div[2]/div[2]/button[2]").click()

Gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, parece que el problema podría estar relacionado con la forma en que el Marco de Pruebas de Comportamiento (BDD Framework) interactúa con el elemento botón.

    Algunas posibles soluciones para probar:

    1. Verificar si el elemento está dentro de un iframe. Si es así, cambia al iframe correcto antes de interactuar con el botón.
    2. Verificar si algún otro elemento está superponiéndose al botón, lo que lo hace no clickable. Utiliza herramientas de desarrollador para inspeccionar la página y verificar si hay algún problema de CSS o de diseño.

    3. Intenta usar una estrategia de localización diferente para encontrar el elemento. En lugar de utilizar XPATH, prueba utilizando selectores CSS o selectores de ID.

    4. Añade un tiempo de espera antes de hacer clic en el botón. A veces, el elemento puede no ser clickable de inmediato, por lo que añadir una espera antes de hacer clic puede resolver el problema.

    5. Verifica si el botón está deshabilitado, lo que evitaría que se pueda hacer clic en él. En este caso, podrías intentar habilitar el botón antes de hacer clic en él.

    En general, es importante analizar cuidadosamente el HTML y CSS de la página para determinar por qué el elemento no es clickable, y luego probar diferentes soluciones para determinar cuál funciona mejor.

Comments are closed.