Comment gérer les alertes et les fenêtres contextuelles dans Selenium?
⚡ Résumé intelligent
Alertes et fenêtres contextuelles dans Selenium Ces JavaCe document explique comment identifier les alertes simples, les invites et les confirmations, comment basculer entre elles avec WebDriver et comment gérer plusieurs fenêtres à l'aide de la méthode `getWindowHandles()`.

Qu'est-ce qu'une alerte ? Selenium?
An Alerte dans Selenium est un petit JavaBoîte de dialogue de script s'affichant à l'écran pour fournir à l'utilisateur des informations ou une notification. Elle peut confirmer une action spécifique, demander l'autorisation d'effectuer une opération ou afficher un message d'avertissement.
Dans ce tutoriel, vous apprendrez à gérer les popups dans Selenium et les différents types d'alertes rencontrées dans une application web vers les testsNous verrons également comment gérer une alerte dans Selenium WebDriver et comment l'accepter ou le refuser en fonction du type d'alerte.
Types d'alertes dans Selenium
JavaLe script affiche trois boîtes de dialogue d'alerte qui Selenium doit être traité différemment.
1) Simple Alert
L'alerte simple affiche des informations ou un avertissement à l'écran. L'utilisateur ne peut la confirmer qu'en cliquant. OK.
2) Prompt Alert
Le message d'alerte invite l'utilisateur à saisir des informations. Selenium WebDriver peut y saisir du texte en utilisant sendKeys("input...").
3) Confirmation Alert
L'alerte de confirmation demande à l'utilisateur d'approuver ou d'annuler une opération. Elle expose les deux OK et Annuler boutons.
Comment gérer une alerte dans Selenium pilote web
Le Alert interface dans Selenium pilote web expose quatre méthodes qui couvrent chaque interaction avec les alertes.
- annuler le rejet() — clique sur le Annuler .
driver.switchTo().alert().dismiss();
- annuler accepter() — clique sur le OK .
driver.switchTo().alert().accept();
- Chaîne getText() — capture le message d'alerte.
driver.switchTo().alert().getText();
- void sendKeys (String stringToSend) — saisit du texte dans une alerte.
driver.switchTo().alert().sendKeys("Text");
Eclipse La fonction de saisie semi-automatique affiche les méthodes d'alerte disponibles après la saisie.ping alert. sur la ligne de l'éditeur. Basculez de la fenêtre principale à l'alerte à tout moment en utilisant Selenium's .basculer vers() méthode.
Exemple concret : Suppression de la démo client
Automatisons le scénario suivant. Nous utiliserons le Guru99 sites de démonstration pour illustrer Selenium Gestion des alertes.
Étape 1) Lancez le navigateur et ouvrez https://demo.guru99.com/test/delete_customer.php.
Étape 2) Veuillez saisir un identifiant client.
Étape 3) Cliquez sur Soumettre .
Étape 4) Acceptez ou ignorez l'alerte de confirmation qui s'affiche.
Selenium Java Code: Gérer Confirmation Alert
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.Alert;
public class AlertDemo {
public static void main(String[] args) throws NoAlertPresentException, InterruptedException {
// Selenium 4 ships Selenium Manager, so an explicit driver path is no longer required.
WebDriver driver = new ChromeDriver();
// Open the Delete Customer demo page
driver.get("https://demo.guru99.com/test/delete_customer.php");
driver.findElement(By.name("cusid")).sendKeys("53920");
driver.findElement(By.name("submit")).submit();
// Switch to the confirmation alert
Alert alert = driver.switchTo().alert();
// Capture the alert message
String alertMessage = alert.getText();
System.out.println(alertMessage);
Thread.sleep(5000);
// Accept the alert
alert.accept();
driver.quit();
}
}
Sortie : Le navigateur ouvre la page « Supprimer le client », saisit l’identifiant du client, accepte l’alerte de confirmation et supprime l’enregistrement de l’application de démonstration.
Comment gérer les fenêtres contextuelles Windows in Selenium pilote web
Lorsque l'automatisation doit fonctionner sur plusieurs fenêtres de navigateur, le test doit alterner entre elles et revenir à la fenêtre parente après chaque opération. Selenium WebDriver expose deux méthodes qui rendent cela possible.
pilote.getWindowHandles()
Renvoie un Set<String> de chaque poignée de fenêtre ouverte. Parcourez l'ensemble pour passer de la fenêtre principale à n'importe quelle fenêtre enfant de l'application.
driver.getWindowHandle()
Renvoie un String avec l'identifiant unique de la fenêtre actuelle. Notez-le avant d'ouvrir une fenêtre enfant afin de pouvoir revenir à la fenêtre parente ultérieurement.
Suivez ces étapes pour démontrer la gestion des fenêtres par rapport à Guru99 démos popup.
Exemple pratique : Changement de fenêtre
Étape 1) Lancez le navigateur et ouvrez https://demo.guru99.com/popup.php.
Étape 2) Cliquez sur Cliquez ici lien. Une nouvelle fenêtre enfant s'ouvre.
Étape 3) La fenêtre enfant invite l'utilisateur à saisir une adresse électronique et à soumettre le formulaire.
Étape 4) Saisissez votre adresse e-mail et soumettez.
Étape 5) Cette page affiche les identifiants d'accès renvoyés par la démonstration.
Après l'affichage des identifiants :
- Fermez la fenêtre enfant.
- Revenez à la fenêtre parente.
Selenium Java CodeGérer plusieurs Windows
import java.util.Iterator;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class WindowHandle_Demo {
public static void main(String[] args) throws InterruptedException {
// Selenium 4 auto-resolves the browser driver via Selenium Manager
WebDriver driver = new FirefoxDriver();
driver.get("https://demo.guru99.com/popup.php");
driver.manage().window().maximize();
driver.findElement(By.xpath("//*[contains(@href,'popup.php')]")).click();
String mainWindow = driver.getWindowHandle();
// Capture every open window handle
Set<String> allWindows = driver.getWindowHandles();
Iterator<String> iterator = allWindows.iterator();
while (iterator.hasNext()) {
String childWindow = iterator.next();
if (!mainWindow.equalsIgnoreCase(childWindow)) {
// Switch to the child window
driver.switchTo().window(childWindow);
driver.findElement(By.name("emailid")).sendKeys("gaurav.3n@gmail.com");
driver.findElement(By.name("btnLogin")).click();
// Close the child window
driver.close();
}
}
// Return focus to the main window
driver.switchTo().window(mainWindow);
driver.quit();
}
}
Sortie : Le site est lancé, le Cliquez ici Le lien ouvre un onglet enfant. Selenium Il saisit l'adresse électronique et la soumet, ferme la fenêtre enfant et retourne à la fenêtre parente.
Conclusion
- Défini les trois Selenium Types d'alertes — simple, rapide et de confirmation — avec une capture d'écran pour chacune.
- Gestion des alertes démontrée avec WebDriver
Alertinterface utilisant un scénario de suppression de client fonctionnel. - Gestion de plusieurs fenêtres de navigateur par capture de descripteurs avec
getWindowHandle()etgetWindowHandles()et en passant de l'un à l'autre.















