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:

  1. Alertes JavaScript: Són alertes senzilles que mostren un missatge i requereixen que l'usuari faci clic en un botó per continuar.
  2. Alertes de Confirmació: Són similars a les alertes JavaScript, però ofereixen opcions per acceptar o cancel·lar l'operació.
  3. Alertes de Prompt: Permeten a l'usuari introduir text abans de fer clic en un botó per continuar.
  4. 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:

  1. 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();

  1. 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();

  1. 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

  1. Navega a una pàgina web que generi una alerta de confirmació.
  2. Canvia el context a l'alerta.
  3. Llegeix el text de l'alerta i imprimeix-lo a la consola.
  4. 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

Mòdul 2: Començant amb Selenium

Mòdul 3: Localització d'Elements Web

Mòdul 4: Interacció amb Elements Web

Mòdul 5: Sincronització en Selenium

Mòdul 6: Marc de Proves i Selenium

Mòdul 7: Conceptes Avançats de Selenium

Mòdul 8: Selenium Grid i Proves en Paral·lel

Mòdul 9: Integració Contínua i Selenium

Mòdul 10: Millors Pràctiques i Resolució de Problemes

© Copyright 2024. Tots els drets reservats