Manejo de Alertas de Javascript / PopUps:
En esta publicación, vemos cómo manejar las alertas de JavaScript / popups. Las alertas son básicamente recuadros emergentes que alejan su enfoque del navegador actual y lo obligan a leer el mensaje de alerta. Debe realizar alguna acción, como aceptar o cerrar el cuadro de alerta para reanudar su tarea en el navegador.
Para manejar las alertas emergentes, debemos cambiar a la ventana de alerta y llamar a los métodos de Selenium WebDriver Alert API.
Hay dos tipos de alertas.
- Basado en Windows
- Basado en la web
Aquí en esta publicación, me limito a Alertas de Javascript o basado en la web.
Para manejar Alertas basadas en el navegador (ventanas emergentes de alerta basadas en la Web), usamos la Interface Alert. La Interface Alert proporciona algunos métodos para manejar las ventanas emergentes.
Al ejecutar la secuencia de comandos de WebDriver, el control del controlador estará en el navegador incluso después de la alerta generada, lo que significa que el control del controlador estará detrás de la alerta emergente. Para cambiar el control a la ventana emergente de alerta, usamos el siguiente comando:
driver.switchTo().alert();
Una vez que cambiemos el control del navegador a la ventana de alerta. Podemos usar los métodos de la Interface de Alert para realizar las acciones requeridas, como aceptar la alerta, descartar la alerta, obtener el texto de la ventana de alerta, escribir algún texto en la ventana de alerta, etc.
Veamos los métodos de la Interface de Alert. Necesitamos Importar el siguiente paquete org.openqa.selenium.Alert para manejar las alertas en Selenium.
Obtener un control de la alerta abierta:
Alert alert = driver.switchTo().alert();
Hacer clic en el botón Aceptar:
alert.accept();
Hacer clic en el botón Cancelar:
alert.dismiss()
Obtener el texto que está presente en la Alerta:
alert.getText();
Ingresar texto en el cuadro de alerta
alert.sendkeys(String stringToSend);
Autenticar pasando las credenciales:
alert.authenticateUsing(Credentials credentials)
Ejemplo manejo de alerta con Selenium WebDriver
import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class AlertInterface { @Test public void alertWindow() throws Exception{ System.setProperty("webdriver.chrome.driver", "D:\\Selenium Environment\\Drivers\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("http://softwaretestingplace.blogspot.com/2017/03/javascript-alert-test-page.html"); driver.findElement(By.xpath("//*[@id='content']/button")).click(); Thread.sleep(3000); Alert alert = driver.switchTo().alert(); String print = alert.getText(); System.out.println(print); alert.accept(); Thread.sleep(3000); driver.findElement(By.xpath("//*[@id='content']/button")).click(); Thread.sleep(3000); alert.dismiss(); driver.close(); } }
Te recomiendo visitar nuestro tutorial de selenium webdriver en español en el siguiente enlace
anderson
julianlujan1