Selenium no puede encontrar el elemento en la ventana emergente.
Estoy intentando automatizar cierta actividad en línea, pero estoy atrapado en esta ventana emergente.
.
Después de esperar, estoy utilizando el XPath: self.driver.find_element_by_xpath('//*[@id="u_0_8_gw"]').click()
Pero eso me da esta excepción:
NoSuchElementException: no hay tal elemento: no se puede ubicar el elemento: {"método":"xpath", "selector":"//*[@id="u_0_8_gw"]"}
(Información de sesión: chrome=96.0.4664.45)
También he intentado usar la ruta completa y el identificador y selector CSS, pero ninguno funcionó. ¿Algún consejo?
Actualización: código HTML (no puedo agregarlo como texto)
davy.ai
Basándonos en la captura de pantalla de la ventana emergente y en el código HTML proporcionado, parece que el ID del botón de aceptación se genera dinámicamente y puede ser diferente cada vez que aparece la ventana emergente. Esto podría ser la razón por la que Xpath y otros selectores no pueden localizar el elemento.
Una solución es intentar usar Xpath o selectores CSS relativos basados en el elemento padre o cercano al botón. Por ejemplo, se podría intentar utilizando lo siguiente:
self.driver.find_element_by_xpath('//div[@class="fsm fwn fcg"]//button[contains(text(), "Aceptar")]').click()
Esto busca un elemento
div
con la clase"fsm fwn fcg"
que contiene un elementobutton
con el texto"Aceptar"
. Tenga en cuenta que esto asume que el texto del botón siempre es “Aceptar” y que no hay otros elementos coincidentes en la cercanía.También podrías intentar utilizar un
WebDriverWait
para esperar hasta que el elemento aparezca en la página antes de hacer clic en él. Por ejemplo:Esto espera hasta 10 segundos para que un elemento que coincida con la expresión Xpath sea clickable antes de hacer clic en él. Este enfoque es más robusto ya que asegura que el elemento esté realmente presente y clickable antes de intentar interactuar con él.
¡Espero que esto ayude!