Kako se nositi s upozorenjima i skočnim prozorima u Selenium?
⚡ Pametni sažetak
Obavijesti i skočni prozori u Selenium ima JavaDijalozi skripti i podređeni prozori koji blokiraju tijek automatizacije. Ovaj članak objašnjava kako prepoznati jednostavna, upitna i potvrdna upozorenja, prebaciti se na njih pomoću WebDrivera i upravljati više prozora pomoću getWindowHandles().

Što je upozorenje u Selenium?
An Upozorenje u Selenium je mali JavaDijaloški okvir skripte koji se pojavljuje na zaslonu kako bi korisniku pružio neke informacije ili obavijesti. Može potvrditi određenu radnju, zatražiti dopuštenje za izvođenje operacije ili prikazati poruku upozorenja.
U ovom tutorialu naučit ćete kako se nositi sa skočnim prozorima u Selenium i različite vrste upozorenja koje se nalaze u web aplikaciji testiranjeTakođer ćemo vidjeti kako postupati s upozorenjem u Selenium WebDriver i kako ga prihvatiti ili odbiti ovisno o vrsti upozorenja.
Vrste upozorenja u Selenium
JavaSkripta prikazuje tri dijaloga upozorenja koja Selenium mora se drugačije postupati.
1) Simple Alert
Jednostavno upozorenje prikazuje informacije ili upozorenje na zaslonu. Korisnik ga može potvrditi samo klikom OK.
2) Prompt Alert
Upozorenje traži od korisnika unos. Selenium WebDriver može upisati u njega pomoću sendKeys("input...").
3) Confirmation Alert
Upozorenje o potvrdi traži od korisnika da odobri ili otkaže operaciju. Izlaže oboje OK i Otkazati tipke.
Kako postupiti s upozorenjem u Selenium webdriver
The Alert sučelje u Selenium webdriver otkriva četiri metode koje pokrivaju svaku interakciju upozorenja.
- void dismiss() — klikne na Otkazati tipku.
driver.switchTo().alert().dismiss();
- nevažeći prihvatiti() — klikne na OK tipku.
driver.switchTo().alert().accept();
- Niz getText() — bilježi poruku upozorenja.
driver.switchTo().alert().getText();
- void sendKeys(string stringToSend) — upisuje tekst u upozorenje.
driver.switchTo().alert().sendKeys("Text");
Eclipse automatsko dovršavanje prikazuje dostupne metode upozorenja nakon typing alert. u redak za uređivanje. Prebacite se iz glavnog prozora u upozorenje u bilo kojem trenutku pomoću Selenium'S .prebaciti na() metoda.
Obrađeni primjer: Brisanje demo verzije kupca
Automatizirajmo sljedeći scenarij. Koristit ćemo Guru99 demo stranica za ilustraciju Selenium rukovanje upozorenjima.
Korak 1) Pokrenite preglednik i otvorite https://demo.guru99.com/test/delete_customer.php.
Korak 2) Unesite bilo koji ID korisnika.
Korak 3) kliknite Procjena tipku.
Korak 4) Prihvatite ili odbacite rezultirajuće upozorenje o potvrdi.
Selenium Java Code: Ručka 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();
}
}
Izlaz: Preglednik otvara stranicu Brisanje kupca, šalje ID kupca, prihvaća upozorenje o potvrdi i uklanja zapis iz demo aplikacije.
Kako se nositi sa skočnim prozorom Windows in Selenium webdriver
Kada automatizacija mora raditi u više prozora preglednika, test mora prebacivati fokus između njih i vraćati se na roditeljski prozor nakon svake operacije. Selenium WebDriver nudi dvije metode koje to omogućuju.
driver.getWindowHandles()
Vraća Set<String> svakog otvorenog ručka prozora. Iterirajte kroz skup kako biste prešli s glavnog prozora na bilo koji podređeni prozor u aplikaciji.
driver.getWindowHandle()
Vraća String s jedinstvenim identifikatorom trenutnog prozora. Snimite ovo prije otvaranja bilo kojeg podređenog prozora kako biste se kasnije mogli vratiti na roditeljski prozor.
Slijedite ove korake kako biste demonstrirali rukovanje prozorima u odnosu na Guru99 skočnih demonstracija.
Primjer obrade: Prebacivanje prozora
Korak 1) Pokrenite preglednik i otvorite https://demo.guru99.com/popup.php.
Korak 2) kliknite Klikni ovdje poveznica. Otvara se novi podređeni prozor.
Korak 3) Podređeni prozor traži od korisnika da unese ID e-pošte i pošalje.
Korak 4) Unesite ID e-pošte i pošaljite.
Korak 5) Stranica prikazuje pristupne vjerodajnice koje je vratila demonstracija.
Nakon prikaza vjerodajnica:
- Zatvori podređeni prozor.
- Vrati fokus na roditeljski prozor.
Selenium Java CodeObrada višestrukih 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();
}
}
Izlaz: Stranica se pokreće, Kliknite ovdje poveznica otvara podređenu karticu, Selenium unosi e-poštu i šalje je, zatvara podređeni prozor i vraća se roditelju.
Zaključak
- Definirao je trojicu Selenium vrste upozorenja - jednostavna, brza i potvrdna - sa snimkom zaslona za svaku.
- Demonstrirano rukovanje upozorenjima pomoću WebDrivera
Alertsučelje pomoću radnog scenarija brisanja korisnika. - Obrađivao je više prozora preglednika hvatanjem ručki s
getWindowHandle()igetWindowHandles()i prebacivanje između njih.















