En este tutorial, aprenderemos cómo manejar ventanas emergentes en Selenium y los diferentes tipos de alertas que se encuentran en las pruebas de aplicaciones web. También veremos cómo manejar Alert en Selenium WebDriver y aprenderemos cómo aceptamos y rechazamos la alerta dependiendo de los tipos de alerta.
En este tutorial, aprenderá:
- ¿Qué es Alerta?
- Cómo manejar Alert en Selenium WebDriver
- Cómo manejar la ventana emergente de selenio usando Webdriver
¿Qué es Alerta en Selenio?
Una alerta en selenio es un pequeño cuadro de mensaje que aparece en la pantalla para brindarle al usuario alguna información o notificación. Notifica al usuario con alguna información específica o error, solicita permiso para realizar ciertas tareas y también proporciona mensajes de advertencia.
Aquí hay algunas alertas en tipos de selenio:
1) Alerta simple
La clase de alerta simple en Selenium muestra información o advertencia en la pantalla.
2) Alerta rápida.
Esta alerta de aviso solicita alguna entrada del usuario y el controlador web de Selenium puede ingresar el texto usando sendkeys ("input
…. ").3) Alerta de confirmación.
Esta alerta de confirmación solicita permiso para realizar algún tipo de operación.
Cómo manejar Alert en Selenium WebDriver
La interfaz de alerta proporciona los siguientes métodos que se utilizan ampliamente en Selenium Webdriver.
1) void dispats () // Para hacer clic en el botón 'Cancelar' de la alerta.
driver.switchTo (). alert (). desechar ();
2) void accept () // Para hacer clic en el botón 'Aceptar' de la alerta.
driver.switchTo (). alert (). accept ();
3) String getText () // Para capturar el mensaje de alerta.
driver.switchTo (). alert (). getText ();
4) void sendKeys (String stringToSend) // Para enviar algunos datos al cuadro de alerta.
driver.switchTo (). alert (). sendKeys ("Texto");
Puede ver que se muestran varios métodos de alerta como se muestra en la siguiente pantalla sugerida por Eclipse.
Podemos cambiar fácilmente a alerta desde la ventana principal usando el método .switchTo () de Selenium .
Ahora automatizamos el siguiente escenario.
En este escenario, usaremos el sitio de demostración Guru99 para ilustrar el manejo de alertas de selenio.
Paso 1) Inicie el navegador web y abra el sitio "http://demo.guru99.com/test/delete_customer.php"
Paso 2) Ingrese cualquier ID de cliente.
Paso 3) Después de ingresar el ID de cliente, haga clic en el botón "Enviar".
Paso 4) Rechazar / aceptar la alerta.
Manejo de alerta en Selenium Webdriver usando el escenario anterior
import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.NoAlertPresentException;import org.openqa.selenium.Alert;public class AlertDemo {public static void main (String [] args) lanza NoAlertPresentException, InterruptedException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Controlador WebDriver = nuevo ChromeDriver ();// Manejo de mensajes de alertadriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (By.name ("enviar")). submit ();// Cambiando a AlertaAlerta de alerta = driver.switchTo (). Alert ();// Capturando mensaje de alerta.String alertMessage = driver.switchTo (). Alert (). GetText ();// Visualización de mensaje de alertaSystem.out.println (alertMessage);Hilo.sueño (5000);// Aceptando alertaalert.accept ();}}
Producción :
Cuando ejecuta el código anterior, inicia el sitio. Intente eliminar la identificación del cliente manejando la alerta de confirmación que se muestra en la pantalla y, por lo tanto, elimine la identificación del cliente de la aplicación.
Cómo manejar la ventana emergente de selenio usando Webdriver
En la automatización, cuando tenemos varias ventanas en cualquier aplicación web, la actividad puede necesitar cambiar el control entre varias ventanas de una a otra para completar la operación. Una vez completada la operación, debe volver a la ventana principal, es decir, la ventana principal en Selenium. Veremos esto más adelante en el artículo con un ejemplo.
En el controlador web Selenium hay métodos a través de los cuales podemos manejar múltiples ventanas.
Driver.getWindowHandles ();
Para manejar todas las ventanas abiertas por el controlador web, podemos usar "Driver.getWindowHandles ()" y luego podemos cambiar la ventana de una ventana a otra en una aplicación web. Su tipo de retorno es Iterator
Driver.getWindowHandle ();
Cuando se abre el sitio, necesitamos manejar la ventana principal con driver.getWindowHandle () . Esto manejará la ventana actual que la identifica de forma única dentro de esta instancia de controlador. Su tipo de retorno es String.
Para el manejo de ventanas en Selenium, seguiremos los pasos a continuación:
Ahora, automatizaremos el siguiente escenario para ver cómo manejar múltiples ventanas usando Selenium Webdriver.
En este escenario, usaremos el sitio de demostración "Guru99" para ilustrar el manejo de ventanas.
Paso 1) Inicie el sitio.
Inicie el navegador y abra el sitio " http://demo.guru99.com/popup.php "
Paso 2) Haga clic en el enlace "Haga clic aquí".
Cuando el usuario hace clic en el enlace "Haga clic aquí", se abre una nueva ventana secundaria.
Paso 3) Se abre la nueva ventana secundaria.
Se abre una nueva ventana, solicite al usuario que ingrese la identificación de correo electrónico y envíe la página.
Paso 4) Ingrese su ID de correo electrónico y envíelo.
Paso 5) Muestre las credenciales de acceso al enviar la página.
Cuando ejecute el código, verá que la ventana secundaria está abierta en una nueva pestaña.
- Cierre la ventana secundaria en la que se muestran las credenciales.
- Cambie a la ventana principal.
Manejo de múltiples ventanas en Selenium webdriver usando el escenario anterior.
import java.util.Iterator;import java.util.Set;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.firefox.FirefoxDriver;clase pública WindowHandle_Demo {public static void main (String [] args) throws InterruptedException {Controlador WebDriver = nuevo FirefoxDriver ();// Lanzamiento del sitio.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). window (). maximizar ();driver.findElement (By.xpath ("// * [contiene (@ href, 'popup.php')]")). click ();String MainWindow = driver.getWindowHandle ();// Para manejar todas las nuevas ventanas abiertas.Establecers1 = driver.getWindowHandles ();Iterador i1 = s1.iterator ();while (i1.hasNext ()){String ChildWindow = i1.next ();if (! MainWindow.equalsIgnoreCase (ChildWindow)){// Cambiar a la ventana secundariadriver.switchTo (). window (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Esta dirección de correo electrónico está protegida contra spambots. Necesita activar JavaScript para visualizarla");driver.findElement (By.name ("btnLogin")). click ();// Cerrar la ventana secundaria.driver.close ();}}// Cambio a la ventana principal, es decir, a la ventana principal.driver.switchTo (). window (MainWindow);}}
Producción:
Cuando ejecuta el código anterior, inicia el sitio y al hacer clic en el enlace "Haga clic aquí", se abre una ventana secundaria en una nueva pestaña. Puede cerrar la ventana secundaria y cambiar a la ventana principal una vez que la operación haya finalizado por completo. Por lo tanto, maneja más de una ventana en la aplicación.
Manejo de múltiples ventanas en selenio
Conclusión:
- Definimos los tipos de alerta y los mostramos con una captura de pantalla.
- Demostrado manejar la alerta con Selenium WebDriver usando un escenario particular.
- Manejó múltiples ventanas con Selenium WebDriver usando un escenario particular.