Cum să gestionezi alertele și ferestrele popup în Selenium?
⚡ Rezumat inteligent
Alerte și ferestre pop-up în Selenium sunt JavaDialoguri de dialog script și ferestre secundare care blochează fluxul de automatizare. Acest articol explică cum să identificați alertele simple, prompte și de confirmare, să comutați la ele cu WebDriver și să gestionați mai multe ferestre folosind getWindowHandles().

Ce este o alertă în Selenium?
An Alertă în Selenium este un mic JavaCasetă de dialog script care apare pe ecran pentru a oferi utilizatorului informații sau notificări. Poate confirma o anumită acțiune, poate solicita permisiunea de a efectua o operațiune sau poate afișa un mesaj de avertizare.
În acest tutorial, veți învăța cum să gestionați ferestrele pop-up în Selenium și diferitele tipuri de alerte găsite în aplicațiile web de testareVom vedea, de asemenea, cum se gestionează o alertă în Selenium WebDriver și cum să îl acceptați sau să îl respingeți în funcție de tipul de alertă.
Tipuri de alerte în Selenium
JavaScriptul expune trei dialoguri de alertă care Selenium trebuie să se comporte diferit.
1) Simple Alert
Alerta simplă afișează informații sau un avertisment pe ecran. Utilizatorul o poate confirma doar făcând clic pe OK.
2) Prompt Alert
Alerta promptă solicită utilizatorului să introducă date. Selenium WebDriver poate tasta în el folosind sendKeys("input...").
3) Confirmation Alert
Alerta de confirmare solicită utilizatorului să aprobe sau să anuleze o operațiune. Expune ambele OK și Anulare butoane.
Cum să gestionezi o alertă în Selenium webdriver
Alert interfață în Selenium webdriver expune patru metode care acoperă fiecare interacțiune de alertă.
- anulează respingerea () — face clic pe Anulare butonul.
driver.switchTo().alert().dismiss();
- void accept() — face clic pe OK butonul.
driver.switchTo().alert().accept();
- String getText() — capturează mesajul de alertă.
driver.switchTo().alert().getText();
- void sendKeys(String șirToSend) — tastează text într-o alertă promptă.
driver.switchTo().alert().sendKeys("Text");
Eclipse Completarea automată afișează metodele de alertă disponibile după typing alert. pe linia editorului. Comutați oricând din fereastra principală în alertă folosind Selenium'S .schimba cu() metodă.
Exemplu funcțional: Ștergere demonstrație client
Să automatizăm următorul scenariu. Vom folosi Guru99 de site-uri demonstrative pentru ilustrare Selenium gestionarea alertelor.
Pas 1) Lansați browserul și deschideți https://demo.guru99.com/test/delete_customer.php.
Pas 2) Introduceți orice ID de client.
Pas 3) Apasă pe Trimite butonul.
Pas 4) Acceptați sau respingeți alerta de confirmare rezultată.
Selenium Java Code: Mâner 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();
}
}
ieșire: Browserul deschide pagina Ștergere client, trimite ID-ul clientului, acceptă alerta de confirmare și elimină înregistrarea din aplicația demo.
Cum se gestionează ferestrele pop-up Windows in Selenium webdriver
Când automatizarea trebuie să funcționeze în mai multe ferestre de browser, testul trebuie să comute între ele și să revină la fereastra părinte după fiecare operațiune. Selenium WebDriver prezintă două metode care fac acest lucru posibil.
driver.getWindowHandles()
Returnează a Set<String> a fiecărui handle de fereastră deschisă. Iterați peste mulțime pentru a comuta de la fereastra principală la orice fereastră copil din aplicație.
driver.getWindowHandle()
Returnează a String cu identificatorul unic al ferestrei curente. Capturați acest lucru înainte de a deschide orice fereastră copil, astfel încât să puteți reveni la fereastră părinte mai târziu.
Urmați acești pași pentru a demonstra gestionarea ferestrelor în raport cu GuruDemonstrație pop-up cu 99 de opțiuni.
Exemplu lucrat: Comutarea ferestrelor
Pas 1) Lansați browserul și deschideți https://demo.guru99.com/popup.php.
Pas 2) Apasă pe Click aici link. Se deschide o nouă fereastră secundară.
Pas 3) Fereastra secundară solicită utilizatorului să introducă un ID de e-mail și să îl trimită.
Pas 4) Introduceți adresa de e-mail și trimiteți.
Pas 5) Pagina afișează credențialele de acces returnate de demonstrație.
După afișarea acreditărilor:
- Închideți fereastra copilului.
- Reduceți focalizarea la fereastra părinte.
Selenium Java CodeGestionare multiple 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();
}
}
ieșire: Se lansează site-ul, Click aici linkul deschide o filă secundară, Selenium introduce e-mailul și îl trimite, închide fereastra copil și revine la fereastra părinte.
Concluzie
- A definit cele trei Selenium tipuri de alerte — simple, prompte și de confirmare — cu o captură de ecran pentru fiecare.
- Gestionarea alertelor demonstrată cu WebDriver
Alertinterfață folosind un scenariu funcțional de ștergere a clientului. - Gestionarea mai multor ferestre de browser prin capturarea handle-urilor cu
getWindowHandle()șigetWindowHandles()și comutarea între ele.















