Jak zvládat upozornění a vyskakovací okna v Selenium?
⚡ Chytré shrnutí
Upozornění a vyskakovací okna v Selenium jsou JavaDialogová okna skriptů a podřízená okna, která blokují automatizační tok. Tento článek vysvětluje, jak identifikovat jednoduchá, výzvávácí a potvrzovací upozornění, přepínat do nich pomocí WebDriveru a spravovat více oken pomocí getWindowHandles().

Co je to upozornění Selenium?
An Upozorněte Selenium je malý JavaDialogové okno skriptu, které se zobrazí na obrazovce a poskytne uživateli nějaké informace nebo oznámení. Může potvrdit konkrétní akci, požádat o povolení k provedení operace nebo zobrazit varovnou zprávu.
V tomto tutoriálu se naučíte, jak pracovat s vyskakovacími okny v Selenium a různé typy upozornění, které se nacházejí ve webové aplikaci TestováníTaké se podíváme, jak zpracovat upozornění v Selenium WebDriver a jak jej přijmout nebo odmítnout v závislosti na typu upozornění.
Typy upozornění v Selenium
JavaSkript zobrazuje tři dialogová okna s upozorněním, která Selenium musí zacházet jinak.
1) Simple Alert
Jednoduché upozornění zobrazuje na obrazovce informace nebo varování. Uživatel jej může potvrdit pouze kliknutím. OK.
2) Prompt Alert
Výzva k zadání požádá uživatele. Selenium WebDriver do něj může zadat pomocí sendKeys("input...").
3) Confirmation Alert
Potvrzovací upozornění požádá uživatele o schválení nebo zrušení operace. Zpřístupňuje obojí OK a Zrušit Tlačítka.
Jak zpracovat upozornění v Selenium webový ovladač
Jedno Alert rozhraní v Selenium webový ovladač zpřístupňuje čtyři metody, které pokrývají každou interakci s upozorněním.
- void dismiss() — klikne na Zrušit .
driver.switchTo().alert().dismiss();
- void accept() — klikne na OK .
driver.switchTo().alert().accept();
- Řetězec getText() — zachytí výstražnou zprávu.
driver.switchTo().alert().getText();
- void sendKeys(String stringToSend) — zadá text do výzvy k zadání upozornění.
driver.switchTo().alert().sendKeys("Text");
Eclipse Automatické doplňování zobrazuje dostupné metody upozornění po typing alert. v editoru. Z hlavního okna můžete kdykoli přepnout do upozornění pomocí SeleniumJe .přepnout na() metoda.
Příklad práce: Smazání zákaznické ukázky
Automatizujme následující scénář. Použijeme Guru99 demo stránek pro ilustraci Selenium zpracování výstrah.
Krok 1) Spusťte prohlížeč a otevřete https://demo.guru99.com/test/delete_customer.php.
Krok 2) Zadejte libovolné ID zákazníka.
Krok 3) Klepněte na tlačítko Odeslat .
Krok 4) Přijměte nebo odmítněte výsledné potvrzovací upozornění.
Selenium Java Code: Rukojeť 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();
}
}
Výstup: Prohlížeč otevře stránku Odstranit zákazníka, odešle ID zákazníka, přijme potvrzovací upozornění a odstraní záznam z demo aplikace.
Jak zvládnout vyskakovací okno Windows in Selenium webový ovladač
Pokud automatizace musí fungovat ve více oknech prohlížeče, musí test po každé operaci přepínat fokus mezi nimi a vracet se do nadřazeného okna. Selenium WebDriver nabízí dvě metody, které to umožňují.
driver.getWindowHandles()
Vrací Set<String> každého otevřeného popisovače okna. Iterací přes množinu přepnete z hlavního okna na jakékoli podřízené okno v aplikaci.
driver.getWindowHandle()
Vrací String s unikátním popisovačem aktuálního okna. Zaznamenejte ho před otevřením jakéhokoli podřízeného okna, abyste se později mohli vrátit k nadřazenému oknu.
Postupujte podle těchto kroků a demonstrujte zpracování oken v Guru99 vyskakovacích ukázek.
Pracovaný příklad: Přepínání oken
Krok 1) Spusťte prohlížeč a otevřete https://demo.guru99.com/popup.php.
Krok 2) Klepněte na tlačítko Klikněte zde odkaz. Otevře se nové podřízené okno.
Krok 3) Podřízené okno vyzve uživatele k zadání e-mailové adresy a odeslání.
Krok 4) Zadejte ID e-mailu a odešlete.
Krok 5) Stránka zobrazuje přístupové údaje vrácené demoverzí.
Po zobrazení přihlašovacích údajů:
- Zavřete podřízené okno.
- Přepnout fokus zpět na nadřazené okno.
Selenium Java CodeZvládnout více 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();
}
}
Výstup: Spuštění webu, Klikněte zde odkaz otevírá podřízenou kartu, Selenium zadá e-mail a odešle ho, zavře podřízené okno a vrátí se rodičovskému.
Závěr
- Definoval tři Selenium typy upozornění – jednoduché, okamžité a potvrzovací – se snímkem obrazovky pro každé z nich.
- Demonstrace zpracování výstrah pomocí WebDriveru
Alertrozhraní s použitím funkčního scénáře odstranění zákazníka. - Zvládl více oken prohlížeče zachycením úchytů pomocí
getWindowHandle()agetWindowHandles()a přepínání mezi nimi.















