manejo de ventanas emergentes con muchos botones usando selenium webdriver

Estoy usando el controlador web selenium con lenguaje Java. cuando hay dos botones en una ventana emergente, es decir, ok y cancelar, puede manejarse fácilmente con el controlador web utilizando el siguiente código:

Alert alert = driver.switchTo().alert();
alert.accept(); // or alert.dismiss(); depending upon the action u want to perform.

pero qué hacer cuando hay más de dos botones, es decir, hay de 3 a 4 botones en la ventana emergente (por ejemplo, como ok, cancelar, intentar de nuevo, ignorar / continuar), en ese caso, ¿qué hacemos? ¿Cómo podemos hacer clic en el botón que queramos?

Muchas gracias por adelantado por su ayuda

Respuesta 1

De lo que estamos hablando es de las ventanas emergentes de diálogo de JavaScript. Hay alert(tiene un botón Aceptar), confirm(tiene Aceptar / Cancelar) y prompt(tiene un campo de entrada y Aceptar). Nada mas. Por lo tanto, el diálogo que está viendo no es un diálogo de JavaScript y no puede ser manejado por la Alertinterfaz de Selenium .

Podrías estar lidiando con uno de esos dos:

  1. Un diálogo personalizado como jQuery's dialog()(o algo similar). ¡Esas son buenas noticias! Eso no es una ventana emergente real, es solo una superposición bien diseñada que consiste en HTML normal hecho para parecerse a un diálogo. Debería poder interactuar con esto de la forma habitual de WebDriver: inspeccione los elementos con la herramienta que elija, luego busque y haga clic en el botón que necesita hacer clic.
  2. El diálogo de un navegador nativo o incluso del sistema operativo (un diálogo de descarga, por ejemplo). Esas son malas noticias, ya que WebDriver no puede manejarlas. Además, tienden a verse de manera diferente en los navegadores / sistemas / configuraciones de idioma, por lo que deberá detectar y manejar cada caso. Sus opciones incluyen:
    • La Robotclase, le permite "presionar" programáticamente cualquier cosa en el teclado (o hacer clic a ciegas) y, por lo tanto, deshacerse del diálogo presionando, digamosEnter
    • AutoIt . Es un programa de Windows útil para manejar cualquier automatización de nivel de sistema.
    • Eso es más o menos eso. Puede especificar con qué cuadro de diálogo está tratando en particular y podríamos encontrar una mejor solución. Por ejemplo, los diálogos de descarga se pueden evitar por completo, etc.
Respuesta: 2

Tengo una pregunta sobre los eventos enviados por el servidor, me gustaría implementar en una aplicación de arranque de primavera, pero la pregunta que quiero escuchar estos eventos de la otra aplicación de arranque de primavera o back-end ...

Estoy leyendo sobre GWT y hasta ahora suena demasiado bueno para ser verdad (!). Me gustaría comenzar a invertir el tiempo para realmente aprender GWT, pero tendría algunos usos muy específicos y odiaría gastar ...

Intenté mostrar AlertDialog cuando se presiona un botón en QuickAction. Pero mi aplicación se bloquea al intentar realizar esta tarea. No sé qué está causando el error. También intenté usar ...

Estoy usando Spring RestTemplate y necesito forzar a mi cliente a enviar una solicitud HTTP a través de una interfaz de red específica. Ya encontré una solución usando java socket: NetworkInterface nif = ...