So gehen Sie mit Warnungen und Popups um in Selenium?
โก Intelligente Zusammenfassung
Benachrichtigungen und Pop-ups in Selenium Diese JavaSkriptdialoge und untergeordnete Fenster, die den Automatisierungsablauf blockieren. Dieser Artikel erklรคrt, wie Sie einfache, Aufforderungs- und Bestรคtigungsbenachrichtigungen identifizieren, mit WebDriver zu ihnen wechseln und mehrere Fenster mithilfe von getWindowHandles() verwalten.

Was ist eine Warnung in Selenium?
An Alarm herein Selenium ist ein kleines JavaEin Skriptdialogfeld, das auf dem Bildschirm erscheint, um dem Benutzer Informationen oder Benachrichtigungen zu geben. Es kann eine bestimmte Aktion bestรคtigen, die Berechtigung zur Durchfรผhrung einer Operation anfordern oder eine Warnmeldung anzeigen.
In diesem Tutorial lernen Sie, wie Sie Popups in Selenium und die verschiedenen Arten von Warnmeldungen, die in Webanwendungen vorkommen. testingWir werden auch sehen, wie man mit einer Warnmeldung umgeht. Selenium WebDriver und wie man Warnungen je nach Art der Warnung annimmt oder ablehnt.
Arten von Warnungen in Selenium
JavaDas Skript zeigt drei Warndialoge an, die Selenium muss anders gehandhabt werden.
1) Simple Alert
Die einfache Warnmeldung zeigt Informationen oder eine Warnung auf dem Bildschirm an. Der Benutzer kann diese nur durch Anklicken bestรคtigen. OK.
2) Prompt Alert
Die Eingabeaufforderung fordert den Benutzer zur Eingabe auf. Selenium WebDriver kann mithilfe von sendKeys("input...").
3) Confirmation Alert
Die Bestรคtigungsabfrage fordert den Benutzer auf, einen Vorgang zu genehmigen oder abzubrechen. Sie legt beides offen. OK und Abbrechen Tasten.
Wie man eine Warnung behandelt Selenium WebTreiber
Das Alert Schnittstelle in Selenium WebTreiber Es werden vier Methoden vorgestellt, die jede Interaktion mit Warnmeldungen abdecken.
- void entlassen() โ klickt auf Abbrechen .
driver.switchTo().alert().dismiss();
- void akzeptieren() โ klickt auf OK .
driver.switchTo().alert().accept();
- String getText() โ erfasst die Warnmeldung.
driver.switchTo().alert().getText();
- void sendKeys(String stringToSend) โ gibt Text in eine Eingabeaufforderung ein.
driver.switchTo().alert().sendKeys("Text");
Eclipse Die Autovervollstรคndigung zeigt nach dem Stichwort die verfรผgbaren Alarmierungsmethoden an.ping alert. in der Editorzeile. Wechseln Sie jederzeit vom Hauptfenster zur Benachrichtigungsansicht mit folgendem Befehl: Selenium .wechseln zu() Methode.
Beispiel: Demo zum Lรถschen eines Kunden
Lassen Sie uns das folgende Szenario automatisieren. Wir werden die Guru99 Demo-Website zur Veranschaulichung Selenium Alarmbehandlung.
Schritt 1) Starten Sie den Browser und รถffnen Sie ihn https://demo.guru99.com/test/delete_customer.php.
Schritt 2) Geben Sie eine beliebige Kunden-ID ein.
Schritt 3) Klicken Sie auf die Absenden .
Schritt 4) Akzeptieren oder ablehnen Sie die daraufhin angezeigte Bestรคtigungsmeldung.
Selenium Java Code: Handhaben 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();
}
}
Ausgang: Der Browser รถffnet die Seite โKunde lรถschenโ, gibt die Kunden-ID ein, akzeptiert die Bestรคtigungsmeldung und entfernt den Datensatz aus der Demo-Anwendung.
Wie man mit Popups umgeht Windows in Selenium WebTreiber
Wenn die Automatisierung รผber mehrere Browserfenster hinweg funktionieren muss, muss der Test den Fokus zwischen ihnen wechseln und nach jedem Vorgang zum รผbergeordneten Fenster zurรผckkehren. Selenium WebDriver stellt zwei Methoden zur Verfรผgung, die dies ermรถglichen.
driver.getWindowHandles()
Gibt a zurรผck Set<String> Jeder geรถffnete Fenstergriff wird durchlaufen. Anschlieรend wird die Menge durchlaufen, um vom Hauptfenster zu einem beliebigen untergeordneten Fenster der Anwendung zu wechseln.
Driver.getWindowHandle()
Gibt a zurรผck String mit dem eindeutigen Handle des aktuellen Fensters. Speichern Sie dieses, bevor Sie ein untergeordnetes Fenster รถffnen, damit Sie spรคter zum รผbergeordneten Fenster zurรผckkehren kรถnnen.
Fรผhren Sie diese Schritte aus, um die Fensterverwaltung anhand der folgenden Schritte zu demonstrieren: Guru99 Popup-Demo.
Beispielrechnung: Fensterwechsel
Schritt 1) Starten Sie den Browser und รถffnen Sie ihn https://demo.guru99.com/popup.php.
Schritt 2) Klicken Sie auf die Mehr Info Link. Ein neues Fenster รถffnet sich.
Schritt 3) Im unteren Fenster wird der Benutzer aufgefordert, eine E-Mail-Adresse einzugeben und das Formular abzusenden.
Schritt 4) Geben Sie Ihre E-Mail-Adresse ein und senden Sie das Formular ab.
Schritt 5) Auf der Seite werden die von der Demo zurรผckgegebenen Zugangsdaten angezeigt.
Nach der Anzeige der Anmeldeinformationen:
- Schlieรe das untergeordnete Fenster.
- Fokus wieder auf das รผbergeordnete Fenster lenken.
Selenium Java CodeMehrere Fรคlle gleichzeitig bearbeiten 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();
}
}
Ausgang: Die Website geht online, die Zu unseren Stellenangeboten Der Link รถffnet einen untergeordneten Tab. Selenium Er gibt die E-Mail-Adresse ein und sendet sie ab, schlieรt das untergeordnete Fenster und kehrt zum รผbergeordneten Fenster zurรผck.
Fazit
- Die drei definierten Selenium Alarmtypen โ einfach, prompt und Bestรคtigung โ jeweils mit einem Screenshot.
- Demonstrierte Alarmbehandlung mit dem WebDriver
AlertSchnittstelle anhand eines funktionierenden Szenarios zum Lรถschen eines Kunden. - Mehrere Browserfenster wurden durch das Erfassen von Handles mit
getWindowHandle()undgetWindowHandles()und zwischen ihnen zu wechseln.















