En aquest tema, aprendrem com gestionar alertes i pop-ups en aplicacions web utilitzant Selenium WebDriver. Les alertes i pop-ups són elements comuns en les interfícies d'usuari que poden interrompre el flux de les proves automatitzades si no es gestionen adequadament.
Tipus d'Alertes i Pop-ups
Abans de començar a treballar amb alertes i pop-ups, és important entendre els diferents tipus que podem trobar:
- Alertes JavaScript: Són alertes senzilles que mostren un missatge i requereixen que l'usuari faci clic en un botó per continuar.
- Alertes de Confirmació: Són similars a les alertes JavaScript, però ofereixen opcions per acceptar o cancel·lar l'operació.
- Alertes de Prompt: Permeten a l'usuari introduir text abans de fer clic en un botó per continuar.
- Pop-ups de finestra: Són noves finestres del navegador que es poden obrir com a part d'una interacció amb la pàgina web.
Gestionant Alertes amb Selenium
Selenium WebDriver proporciona una interfície senzilla per interactuar amb alertes. A continuació, es mostra com gestionar cada tipus d'alerta:
- Alertes JavaScript
Per gestionar una alerta JavaScript, utilitzem el mètode switchTo().alert()
per canviar el context a l'alerta i després podem acceptar-la o cancel·lar-la.
// Canviar el context a l'alerta Alert alert = driver.switchTo().alert(); // Acceptar l'alerta alert.accept();
- Alertes de Confirmació
Les alertes de confirmació es gestionen de manera similar a les alertes JavaScript, però podem triar entre acceptar o cancel·lar.
// Canviar el context a l'alerta Alert alert = driver.switchTo().alert(); // Cancel·lar l'alerta alert.dismiss();
- Alertes de Prompt
Per a les alertes de prompt, a més d'acceptar o cancel·lar, també podem introduir text.
// Canviar el context a l'alerta Alert alert = driver.switchTo().alert(); // Introduir text a l'alerta de prompt alert.sendKeys("Text d'exemple"); // Acceptar l'alerta alert.accept();
Exercici Pràctic
Objectiu: Escriu un script de Selenium que gestioni una alerta de confirmació en una pàgina web.
Pas a Pas
- Navega a una pàgina web que generi una alerta de confirmació.
- Canvia el context a l'alerta.
- Llegeix el text de l'alerta i imprimeix-lo a la consola.
- Accepta l'alerta.
Solució
import org.openqa.selenium.Alert; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class AlertExample { public static void main(String[] args) { // Configura el WebDriver System.setProperty("webdriver.chrome.driver", "ruta/al/driver/chromedriver"); WebDriver driver = new ChromeDriver(); // Navega a la pàgina web driver.get("http://exemple.com/alerta"); // Canvia el context a l'alerta Alert alert = driver.switchTo().alert(); // Llegeix i imprimeix el text de l'alerta System.out.println("Text de l'alerta: " + alert.getText()); // Accepta l'alerta alert.accept(); // Tanca el navegador driver.quit(); } }
Consells Addicionals
- Sincronització: Assegura't que l'alerta estigui present abans de canviar el context. Pots utilitzar esperes explícites per assegurar-te que l'alerta s'ha carregat.
- Gestió d'Errors: Si intentes canviar el context a una alerta que no existeix, Selenium llençarà una excepció. Gestiona aquestes excepcions adequadament.
Conclusió
En aquesta secció, hem après a gestionar diferents tipus d'alertes i pop-ups utilitzant Selenium WebDriver. Aquestes habilitats són essencials per assegurar que les proves automatitzades no es vegin interrompudes per elements emergents inesperats. En el següent tema, explorarem com gestionar finestres del navegador i frames.
Automatització de Proves amb Selenium
Mòdul 1: Introducció a l'Automatització de Proves
- Què és l'Automatització de Proves?
- Beneficis de l'Automatització de Proves
- Visió General de Selenium
- Configuració del Teu Entorn
Mòdul 2: Començant amb Selenium
- Introducció a Selenium WebDriver
- Instal·lació de Selenium WebDriver
- Primer Script de Selenium
- Comprensió de la Interfície WebDriver
Mòdul 3: Localització d'Elements Web
- Introducció als Localitzadors
- Ús de Localitzadors ID i Nom
- XPath i Selectors CSS
- Estratègies Avançades de Localització
Mòdul 4: Interacció amb Elements Web
- Realització d'Accions sobre Elements Web
- Gestió de Desplegables i Caixes de Selecció
- Treballant amb Alertes i Pop-ups
- Gestió de Finestres del Navegador i Frames
Mòdul 5: Sincronització en Selenium
Mòdul 6: Marc de Proves i Selenium
- Introducció a TestNG
- Configuració de TestNG amb Selenium
- Creació de Casos de Prova TestNG
- Proves Basades en Dades amb TestNG
Mòdul 7: Conceptes Avançats de Selenium
- Gestió de Trucades AJAX
- Treballant amb Cookies
- Captura de Captures de Pantalla
- Execució de JavaScript amb Selenium
Mòdul 8: Selenium Grid i Proves en Paral·lel
- Introducció a Selenium Grid
- Configuració de Selenium Grid
- Execució de Proves en Paral·lel
- Proves Multinavegador
Mòdul 9: Integració Contínua i Selenium
- Introducció a la Integració Contínua
- Integració de Selenium amb Jenkins
- Automatització de l'Execució de Proves
- Informes i Registre