Hur man hanterar varningar och popup-fönster i Selenium?
⚡ Smart sammanfattning
Aviseringar och popup-fönster i Selenium är JavaSkriptdialogrutor och underfönster som blockerar automatiseringsflödet. Den här artikeln förklarar hur man identifierar enkla aviseringar, promptaviseringar och bekräftelseaviseringar, växlar till dem med WebDriver och hanterar flera fönster med getWindowHandles().

Vad är en varning i Selenium?
An Varning in Selenium är en liten JavaSkriptdialogruta som visas på skärmen för att ge användaren information eller meddelanden. Den kan bekräfta en specifik åtgärd, begära tillstånd att utföra en åtgärd eller visa ett varningsmeddelande.
I den här handledningen lär du dig hur du hanterar popup-fönster i Selenium och de olika typerna av varningar som finns i webbapplikationen testningVi kommer också att se hur man hanterar en varning i Selenium WebDriver och hur man accepterar eller avvisar den beroende på varningstyp.
Typer av varningar i Selenium
JavaSkriptet exponerar tre varningsdialogrutor som Selenium måste hanteras annorlunda.
1) Simple Alert
Den enkla aviseringen visar information eller en varning på skärmen. Användaren kan bara bekräfta den genom att klicka på OK.
2) Prompt Alert
Promptaviseringen ber användaren om inmatning. Selenium WebDriver kan skriva in i den med hjälp av sendKeys("input...").
3) Confirmation Alert
Bekräftelseaviseringen ber användaren att godkänna eller avbryta en åtgärd. Den exponerar både OK och Annullera knappar.
Hur man hanterar en varning i Selenium webbdrivrutin
Ocuco-landskapet Alert gränssnitt i Selenium webbdrivrutin exponerar fyra metoder som täcker varje varningsinteraktion.
- void avvisa() — klickar på Annullera knapp.
driver.switchTo().alert().dismiss();
- void acceptera() — klickar på OK knapp.
driver.switchTo().alert().accept();
- Sträng getText() — fångar upp varningsmeddelandet.
driver.switchTo().alert().getText();
- void sendKeys(String stringToSend) — skriver in text i en snabb avisering.
driver.switchTo().alert().sendKeys("Text");
Eclipse autofullständig visar tillgängliga varningsmetoder efter typing alert. på redigeringsraden. Växla från huvudfönstret till varningen när som helst med hjälp av SeleniumÄr .byta till() metod.
Fungerande exempel: Ta bort kunddemo
Låt oss automatisera följande scenario. Vi kommer att använda Guru99 demosida för att illustrera Selenium varningshantering.
Steg 1) Starta webbläsaren och öppna https://demo.guru99.com/test/delete_customer.php.
Steg 2) Ange valfritt kund-ID.
Steg 3) Klicka på Skicka knapp.
Steg 4) Acceptera eller ignorera den resulterande bekräftelseaviseringen.
Selenium Java Code: Handtag 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();
}
}
Produktion: Webbläsaren öppnar sidan Ta bort kund, skickar kund-ID:t, accepterar bekräftelseaviseringen och tar bort posten från demoapplikationen.
Hur man hanterar popup-fönster Windows in Selenium webbdrivrutin
När automatisering måste fungera i flera webbläsarfönster måste testet växla fokus mellan dem och återgå till det överordnade fönstret efter varje åtgärd. Selenium WebDriver visar två metoder som gör detta möjligt.
drivrutin.getWindowHandles()
Returnerar en Set<String> för varje öppet fönsterhandtag. Iterera över uppsättningen för att växla från huvudfönstret till valfritt underfönster i applikationen.
driver.getWindowHandle()
Returnerar en String med det unika handtaget för det aktuella fönstret. Spara detta innan du öppnar ett underfönster så att du kan återgå till det överordnade senare.
Följ dessa steg för att demonstrera fönsterhantering mot Guru99 popup-demo.
Arbetsexempel: Fönsterbyte
Steg 1) Starta webbläsaren och öppna https://demo.guru99.com/popup.php.
Steg 2) Klicka på Klicka här länk. Ett nytt underfönster öppnas.
Steg 3) I underfönstret uppmanas användaren att ange ett e-postadress och skicka.
Steg 4) Ange e-postadressen och skicka.
Steg 5) Sidan visar de åtkomstuppgifter som returneras av demon.
Efter att inloggningsuppgifterna visas:
- Stäng barnfönstret.
- Flytta fokus tillbaka till det överordnade fönstret.
Selenium Java CodeHantera flera 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();
}
}
Produktion: Webbplatsen lanseras, den Klicka här länken öppnar en underflik, Selenium skriver in e-postmeddelandet och skickar, stänger det underordnade fönstret och återgår till det överordnade.
Slutsats
- Definierade de tre Selenium varningstyper – enkel, snabb och bekräftelse – med en skärmdump för varje.
- Demonstrerad varningshantering med WebDriver
Alertgränssnitt med hjälp av ett fungerande scenario för borttagning av kund. - Hanterade flera webbläsarfönster genom att hämta handtag med
getWindowHandle()ochgetWindowHandles()och växlar mellan dem.















