Hogyan kezeljük a riasztásokat és felugró ablakokat? Selenium?
⚡ Okos összefoglaló
Riasztások és felugró ablakok Selenium faliórái JavaSzkript párbeszédablakok és alárendelt ablakok, amelyek blokkolják az automatizálási folyamatot. Ez a cikk elmagyarázza, hogyan azonosíthatók az egyszerű, a prompt és a megerősítő riasztások, hogyan válthat ezekre a WebDriver segítségével, és hogyan kezelhet több ablakot a getWindowHandles() használatával.

Mi az a riasztás? Selenium?
An Figyelmeztetés be Selenium kicsi JavaSzkript párbeszédpanel, amely megjelenik a képernyőn, hogy információt vagy értesítést adjon a felhasználónak. Megerősíthet egy adott műveletet, engedélyt kérhet egy művelet végrehajtására, vagy figyelmeztető üzenetet jeleníthet meg.
Ebben az oktatóanyagban megtanulod, hogyan kezeld a felugró ablakokat Selenium és a webes alkalmazásokban található különböző típusú riasztások tesztelésAzt is látni fogjuk, hogyan kell kezelni egy riasztást a Selenium WebDriver és annak elfogadása vagy elutasítása a riasztás típusától függően.
A riasztások típusai itt Selenium
JavaA szkript három riasztási párbeszédablakot jelenít meg, amelyek Selenium másképp kell kezelni.
1) Simple Alert
Az egyszerű riasztás információt vagy figyelmeztetést jelenít meg a képernyőn. A felhasználó csak kattintással nyugtázhatja azt. OK.
2) Prompt Alert
A riasztási üzenet bemenetet kér a felhasználótól. Selenium A WebDriver a következőképpen írhatja be: sendKeys("input...").
3) Confirmation Alert
A megerősítő riasztás arra kéri a felhasználót, hogy hagyjon jóvá vagy vonjon vissza egy műveletet. Mindkettőt elérhetővé teszi OK és a Mégsem gombok.
Hogyan kezeljünk egy riasztást Selenium webdriver
Az Alert interfész Selenium webdriver négy metódust mutat be, amelyek minden riasztási interakciót lefednek.
- érvénytelen elvetés () — rákattint a Mégsem gombot.
driver.switchTo().alert().dismiss();
- érvénytelen elfogadás() — rákattint a OK gombot.
driver.switchTo().alert().accept();
- String getText() — rögzíti a riasztási üzenetet.
driver.switchTo().alert().getText();
- void sendKeys (StringToSend) — szöveget gépel be egy riasztási ablakba.
driver.switchTo().alert().sendKeys("Text");
Eclipse Az automatikus kiegészítés a ty után elérhető riasztási metódusokat mutatjaping alert. a szerkesztősorban. Bármikor válthat a főablakból a riasztásba a következővel: Selenium'S .váltani() módszer.
Működő példa: Ügyfél demó törlése
Automatizáljuk a következő forgatókönyvet. A következőt fogjuk használni: Guru99 bemutató oldal a szemléltetéshez Selenium riasztáskezelés.
Step 1) Indítsd el a böngészőt és nyisd meg https://demo.guru99.com/test/delete_customer.php.
Step 2) Adjon meg egy tetszőleges ügyfél-azonosítót.
Step 3) Kattintson az Küldés gombot.
Step 4) Fogadja el vagy utasítsa el a megjelenő megerősítő riasztást.
Selenium Java Code: Fogantyú 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();
}
}
output: A böngésző megnyitja az Ügyfél törlése oldalt, beküldi az ügyfél-azonosítót, elfogadja a megerősítő riasztást, és eltávolítja a rekordot a demóalkalmazásból.
Hogyan kezeljük a felugró ablakokat Windows in Selenium webdriver
Amikor az automatizálásnak több böngészőablakon kell működnie, a tesztnek minden művelet után váltania kell a fókuszt közöttük, és vissza kell térnie a szülőablakba. Selenium A WebDriver két módszert mutat be, amelyek ezt lehetővé teszik.
driver.getWindowHandles()
Visszaad egy Set<String> minden megnyitott ablak fogantyújánál. Menjen végig a halmazon, hogy a főablakról az alkalmazás bármely alárendelt ablakára váltson.
driver.getWindowHandle()
Visszaad egy String az aktuális ablak egyedi azonosítójával. Rögzítse ezt bármelyik gyermekablak megnyitása előtt, hogy később visszatérhessen a szülőablakba.
Kövesse az alábbi lépéseket az ablakkezelés bemutatásához a Guru99 felugró demó.
Működő példa: Ablakváltás
Step 1) Indítsd el a böngészőt és nyisd meg https://demo.guru99.com/popup.php.
Step 2) Kattintson az Kattints ide link. Megnyílik egy új alárendelt ablak.
Step 3) Az alárendelt ablak arra kéri a felhasználót, hogy adjon meg egy e-mail azonosítót, majd küldje el.
Step 4) Add meg az e-mail azonosítót, és küldd el.
Step 5) Az oldal megjeleníti a demó által visszaadott hozzáférési hitelesítő adatokat.
A hitelesítő adatok megjelenítése után:
- Zárja be a gyermek ablakot.
- Váltsa vissza a fókuszt a szülőablakra.
Selenium Java CodeTöbb kezelése 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();
}
}
output: Az oldal elindul, a Kattintson ide a hivatkozás egy alárendelt lapot nyit meg, Selenium beírja az e-mailt és elküldi, bezárja a gyermek ablakot, és visszatér a szülőhöz.
Összegzés
- Meghatározta a hármat Selenium riasztástípusok – egyszerű, azonnali és megerősítő – mindegyikhez képernyőképmel.
- Riasztáskezelés bemutatása a WebDriver segítségével
Alertfelület egy működő ügyféltörlési forgatókönyv használatával. - Több böngészőablakot kezelt a handle-ök rögzítésével a következővel:
getWindowHandle()és agetWindowHandles()és váltogatva közöttük.















