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.

  • ๐Ÿ”” Kerndefinition: A Selenium Alarm ist ein JavaEin Skriptdialog wird oberhalb der Seite angezeigt und muss vor weiteren Aktionen ausgefรผhrt werden.
  • ๐Ÿ—‚๏ธ Drei Alarmtypen: Einfach (Info), Aufforderung (Texteingabe) und Bestรคtigung (Ja/Nein) erfordern jeweils unterschiedliche WebDriver-Aufrufe.
  • ๏ธ Alarm-API: Verwenden Sie driver.switchTo().alert() zusammen mit accept(), dismiss(), getText() und sendKeys(), um mit dem Dialog zu interagieren.
  • ๐ŸชŸ Fensterbedienung: getWindowHandle() gibt die aktuelle Fenster-ID zurรผck; getWindowHandles() gibt das vollstรคndige Set zum Umschalten zurรผck.
  • ๐Ÿš€ Selenium 4 Hinweis: Selenium Der Manager lรถst Treiber automatisch auf, sodass keine fest codierten Pfade zu chromedriver.exe mehr benรถtigt werden.
  • ๐Ÿค– KI-Unterstรผtzung: KI-Agenten generieren ortsbezogene Warn- und Fensterskripte, wodurch der manuelle Aufwand fรผr die Erstellung von Testsuiten reduziert wird.

So gehen Sie mit Warnungen und Popups um in Selenium

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.

Einfaches Beispiel fรผr einen Warndialog im Browser

2) Prompt Alert

Die Eingabeaufforderung fordert den Benutzer zur Eingabe auf. Selenium WebDriver kann mithilfe von sendKeys("input...").

Eingabeaufforderungsdialog mit Eingabefeld

3) Confirmation Alert

Die Bestรคtigungsabfrage fordert den Benutzer auf, einen Vorgang zu genehmigen oder abzubrechen. Sie legt beides offen. OK und Abbrechen Tasten.

Bestรคtigungsdialog mit OK- und Abbrechen-Schaltflรคchen

Wie man eine Warnung behandelt Selenium WebTreiber

Das Alert Schnittstelle in Selenium WebTreiber Es werden vier Methoden vorgestellt, die jede Interaktion mit Warnmeldungen abdecken.

  1. void entlassen() โ€” klickt auf Abbrechen .
driver.switchTo().alert().dismiss();
  1. void akzeptieren() โ€” klickt auf OK .
driver.switchTo().alert().accept();
  1. String getText() โ€” erfasst die Warnmeldung.
driver.switchTo().alert().getText();
  1. 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.

Eclipse Autovervollstรคndigung zeigt Methoden zur Alarmbehandlung an

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.

Kundendemoseite mit Kunden-ID-Feld lรถschen

Schritt 3) Klicken Sie auf die Absenden .

Absenden-Schaltflรคche zum Auslรถsen einer Bestรคtigungsbenachrichtigung

Schritt 4) Akzeptieren oder ablehnen Sie die daraufhin angezeigte Bestรคtigungsmeldung.

Bestรคtigungsalarm, ausgelรถst durch Lรถschaktion

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.

Guru99 Popup-Demo-Landingpage

Schritt 2) Klicken Sie auf die Mehr Info Link. Ein neues Fenster รถffnet sich.

Das untergeordnete Fenster wird รผber den Link โ€žHier klickenโ€œ geรถffnet.

Schritt 3) Im unteren Fenster wird der Benutzer aufgefordert, eine E-Mail-Adresse einzugeben und das Formular abzusenden.

E-Mail-Eingabeformular fรผr das Kinderfenster

Schritt 4) Geben Sie Ihre E-Mail-Adresse ein und senden Sie das Formular ab.

E-Mail-รœbermittlung im untergeordneten Fenster

Schritt 5) Auf der Seite werden die von der Demo zurรผckgegebenen Zugangsdaten angezeigt.

Die Zugangsdaten werden im untergeordneten Fenster angezeigt.

Nach der Anzeige der Anmeldeinformationen:

  1. SchlieรŸe das untergeordnete Fenster.

SchlieรŸen des untergeordneten Fensters im Browser

  1. Fokus wieder auf das รผbergeordnete Fenster lenken.

Fokus zurรผck zum รผbergeordneten Fenster

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.

Mehrere Fensterbearbeitungen abgeschlossen in Selenium

Fazit

  • Die drei definierten Selenium Alarmtypen โ€“ einfach, prompt und Bestรคtigung โ€“ jeweils mit einem Screenshot.
  • Demonstrierte Alarmbehandlung mit dem WebDriver Alert Schnittstelle anhand eines funktionierenden Szenarios zum Lรถschen eines Kunden.
  • Mehrere Browserfenster wurden durch das Erfassen von Handles mit getWindowHandle() und getWindowHandles() und zwischen ihnen zu wechseln.

Hรคufig gestellte Fragen

Eine Benachrichtigung ist ein natives JavaEin Skriptdialog, der die Seite bis zur Bearbeitung anhรคlt. Ein Popup-Fenster ist ein neues Browserfenster oder ein neuer Tab. Warnmeldungen verwenden `switchTo().alert()`; Popups verwenden `switchTo().window()` mit dem von `getWindowHandles()` zurรผckgegebenen Handle.

Eine NoAlertPresentException wird ausgelรถst, wenn switchTo().alert() ausgefรผhrt wird, aber aktuell keine Warnmeldung angezeigt wird. Um dem Aufruf Zeit zu geben, den Dialog auszulรถsen, sollte WebDriverWait verwendet werden, bis ExpectedConditions.alertIsPresent() true ist.

Popups fรผr die Basisauthentifizierung sind nicht Standard. JavaSkriptwarnungen. Anmeldeinformationen im Skript angeben. URL (https://user:pass@site.com) oder verwenden Selenium 4 CDP Network.setExtraHTTPHeaders. Verwenden Sie fรผr SSO-Popups BrowserStack oder einen registrierten hasAuthentication-Handler.

KI-Assistenten wie AI Code-Copiloten generieren lokatorbasierte Alert-Handler, prognostizieren erforderliche Wartezeiten und refaktorisieren fehleranfรคllige XPath-Ausdrรผcke. AuรŸerdem entwerfen sie Assertions fรผr Alert-Texte und untergeordnete Fenster. URLs, beschleunigend Selenium Testerstellung.

Ja. Selbstheilende Testplattformen nutzen KI, um DOM-ร„nderungen zu erkennen, defekte Locators auszutauschen und Wartezeiten anzupassen, wenn sich Warnmeldungen oder Popups verschieben. Dies reduziert den Wartungsaufwand fรผr Selenium Suiten, die mit hรคufig aktualisierten Frontends laufen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: