Slik håndterer du varsler og popup-vinduer i Selenium?
⚡ Smart oppsummering
Varsler og popup-vinduer i Selenium er JavaSkriptdialoger og undervinduer som blokkerer automatiseringsflyt. Denne artikkelen forklarer hvordan du identifiserer enkle varsler, ledetekstvarsler og bekreftelsesvarsler, bytter til dem med WebDriver og administrerer flere vinduer ved hjelp av getWindowHandles().

Hva er et varsel i Selenium?
An Varsle inn Selenium er en liten JavaSkriptdialogboks som vises på skjermen for å gi brukeren informasjon eller varsler. Den kan bekrefte en bestemt handling, be om tillatelse til å utføre en operasjon eller vise en advarselsmelding.
I denne veiledningen lærer du hvordan du håndterer popup-vinduer i Selenium og de ulike typene varsler som finnes i webapplikasjonen testingVi skal også se hvordan man håndterer et varsel i Selenium WebDriver og hvordan du godtar eller avviser den avhengig av varseltypen.
Typer varsler i Selenium
JavaSkriptet eksponerer tre varslingsdialoger som Selenium må håndteres annerledes.
1) Simple Alert
Det enkle varselet viser informasjon eller en advarsel på skjermen. Brukeren kan bare bekrefte det ved å klikke på OK.
2) Prompt Alert
Varselet ber brukeren om innspill. Selenium WebDriver kan skrive inn i den ved hjelp av sendKeys("input...").
3) Confirmation Alert
Bekreftelsesvarselet ber brukeren om å godkjenne eller avbryte en operasjon. Det eksponerer begge OK og Kansellere knapper.
Slik håndterer du et varsel i Selenium webdriver
Ocuco Alert grensesnitt i Selenium webdriver eksponerer fire metoder som dekker alle varslingsinteraksjoner.
- void avvis() — klikker på Kansellere knapp.
driver.switchTo().alert().dismiss();
- void accept() — klikker på OK knapp.
driver.switchTo().alert().accept();
- String getText() — fanger opp varselmeldingen.
driver.switchTo().alert().getText();
- void sendKeys(String stringToSend) — skriver tekst inn i et varsel.
driver.switchTo().alert().sendKeys("Text");
Eclipse autofullføring viser tilgjengelige varslingsmetoder etter typing alert. på redigeringslinjen. Bytt fra hovedvinduet til varselet når som helst ved å bruke Selenium'S .switchTo() metoden.
Fungert eksempel: Slett kundedemo
La oss automatisere følgende scenario. Vi bruker Guru99 demoside for å illustrere Selenium varslingshåndtering.
Trinn 1) Start nettleseren og åpne den https://demo.guru99.com/test/delete_customer.php.
Trinn 2) Skriv inn en hvilken som helst kunde-ID.
Trinn 3) Klikk på Send knapp.
Trinn 4) Godta eller avvis det resulterende bekreftelsesvarselet.
Selenium Java Code: Håndtak 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();
}
}
Utgang: Nettleseren åpner siden Slett kunde, sender inn kunde-ID-en, godtar bekreftelsesvarselet og fjerner posten fra demoapplikasjonen.
Slik håndterer du popup-vinduer Windows in Selenium webdriver
Når automatisering må fungere på tvers av flere nettleservinduer, må testen bytte fokus mellom dem og gå tilbake til det overordnede vinduet etter hver operasjon. Selenium WebDriver eksponerer to metoder som gjør dette mulig.
driver.getWindowHandles()
Returnerer en Set<String> for hvert åpne vindushåndtak. Iterer over settet for å bytte fra hovedvinduet til et hvilket som helst undervindu i applikasjonen.
driver.getWindowHandle()
Returnerer en String med det unike håndtaket til gjeldende vindu. Registrer dette før du åpner et undervindu, slik at du kan gå tilbake til det overordnede vinduet senere.
Følg disse trinnene for å demonstrere vindushåndtering mot Guru99 popup-demo.
Fungert eksempel: Vindusbytte
Trinn 1) Start nettleseren og åpne den https://demo.guru99.com/popup.php.
Trinn 2) Klikk på Klikk her lenke. Et nytt undervindu åpnes.
Trinn 3) Undervinduet ber brukeren om å oppgi en e-postadresse og sende inn.
Trinn 4) Skriv inn e-postadressen og send inn.
Trinn 5) Siden viser tilgangslegitimasjonen som returneres av demoen.
Etter at legitimasjonene vises:
- Lukk barnevinduet.
- Flytt fokus tilbake til det overordnede vinduet.
Selenium Java CodeHåndter flere 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();
}
}
Utgang: Nettstedet lanseres, Klikk her lenken åpner en underfane, Selenium skriver inn e-posten og sender den inn, lukker det underordnede vinduet og går tilbake til den overordnede.
Konklusjon
- Definerte de tre Selenium varslingstyper – enkel, rask og bekreftelse – med et skjermbilde for hver.
- Demonstrert varslingshåndtering med WebDriver
Alertgrensesnitt ved hjelp av et fungerende scenario for sletting av kunder. - Håndterte flere nettleservinduer ved å fange opp referanser med
getWindowHandle()oggetWindowHandles()og bytte mellom dem.















