Kako rukovati Selenium Upozorenja i skočni prozori?
U čemu je Alert Selenium?
An Upozorenje u Selenium je mali okvir s porukom koji se pojavljuje na ekranu kako bi korisniku dao neke informacije ili obavijest. Obavještava korisnika s određenim informacijama ili pogreškama, traži dopuštenje za obavljanje određenih zadataka, a također nudi poruke upozorenja.
U ovom vodiču naučit ćemo kako upravljati skočnim prozorom Selenium i različite vrste upozorenja pronađenih u web aplikaciji Ispitivanje. Također ćemo vidjeti kako rukovati upozorenjem Selenium WebDriver i saznajte kako prihvaćamo i odbijamo upozorenje ovisno o vrsti upozorenja.
Vrste upozorenja u Selenium
1) Simple Alert
Jednostavna klasa upozorenja u Selenium prikazuje neke informacije ili upozorenja na ekranu.
2) Prompt Alert
Ova Prompt Alert traži neki unos od korisnika i Selenium webdriver može unijeti tekst koristeći sendkeys(” input…. “).
3) Confirmation Alert
Ovo potvrdno upozorenje traži dopuštenje za obavljanje neke vrste operacije.
Kako postupiti s upozorenjem Selenium webdriver
Sučelje s upozorenjem pruža dolje nekoliko metoda koje se široko koriste u Selenium Webdriver.
1) void dismiss() // Za klik na gumb 'Odustani' upozorenja.
driver.switchTo().alert().dismiss();
2) nevažeći prihvatiti()// Za klik na gumb 'OK' upozorenja.
driver.switchTo().alert().accept();
3) Niz getText() // Za snimanje poruke upozorenja.
driver.switchTo().alert().getText();
4) void sendKeys(string stringToSend) // Za slanje nekih podataka u okvir upozorenja.
driver.switchTo().alert().sendKeys("Text");
Možete vidjeti da su prikazane brojne metode upozorenja kao što je prikazano na donjem zaslonu koje predlaže Eclipse.
Lako se možemo prebaciti na upozorenje iz glavnog prozora pomoću Selenium'S .prebaciti na() metoda.
Sada automatiziramo donji scenarij.
U ovom ćemo scenariju za ilustraciju koristiti demo stranicu Guru99 Selenium Rukovanje upozorenjima.
Korak 1) Pokrenite web preglednik i otvorite stranicu https://demo.guru99.com/test/delete_customer.php
Korak 2) Unesite bilo koji korisnički ID.
Korak 3) Nakon unosa korisničkog ID-a, kliknite na gumb "Pošalji".
Korak 4) Odbaci/prihvati upozorenje.
Rukovanje upozorenjem Selenium Webdriver
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 { System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); // Alert Message handling driver.get("https://demo.guru99.com/test/delete_customer.php"); driver.findElement(By.name("cusid")).sendKeys("53920"); driver.findElement(By.name("submit")).submit(); // Switching to Alert Alert alert = driver.switchTo().alert(); // Capturing alert message. String alertMessage= driver.switchTo().alert().getText(); // Displaying alert message System.out.println(alertMessage); Thread.sleep(5000); // Accepting alert alert.accept(); } }
Izlaz:
Kada izvršite gornji kod, on pokreće stranicu. Pokušajte izbrisati korisnički ID rukovanjem potvrdnim upozorenjem koje se prikazuje na ekranu i time izbrišite korisnički ID iz aplikacije.
Kako rukovati skočnim prozorom pomoću Selenium Webdriver
U automatizaciji, kada imamo više prozora u bilo kojoj web aplikaciji, aktivnost će možda trebati prebaciti kontrolu između nekoliko prozora s jednog na drugi kako bi se operacija dovršila. Nakon završetka operacije mora se vratiti u glavni prozor tj. nadređeni prozor u Selenium. To ćemo vidjeti dalje u članku s primjerom.
In Selenium web driver postoje metode pomoću kojih možemo rukovati s više prozora.
Driver.getWindowHandles();
Za obradu svih otvorenih prozora pomoću web upravljačkog programa, možemo upotrijebiti "Driver.getWindowHandles()", a zatim možemo prebacivati prozor s jednog prozora na drugi u web aplikaciji. Njegov povratni tip je Iterator .
Driver.getWindowHandle();
Kada se stranica otvori, moramo rukovati glavnim prozorom driver.getWindowHandle(). Ovo će obraditi trenutni prozor koji ga jedinstveno identificira unutar ove instance upravljačkog programa. Njegov povratni tip je String.
Za rukovanje prozorom u Selenium, slijedit ćemo korake u nastavku:
Sada ćemo automatizirati dolje navedeni scenarij da bismo vidjeli kako rukovati korištenjem više prozora Selenium Webdriver.
U ovom scenariju koristit ćemo demo stranicu "Guru99" za ilustraciju rukovanja prozorom.
Korak 1) Pokrenite stranicu.
Pokrenite preglednik i otvorite stranicu https://demo.guru99.com/popup.php
Korak 2) Kliknite na poveznicu “Kliknite ovdje”.
Kada korisnik klikne na poveznicu "Klikni ovdje", otvara se novi podređeni prozor.
Korak 3) Otvara se novi podređeni prozor.
Otvara se novi prozor, tražite od korisnika da unese ID e-pošte i pošalje stranicu.
Korak 4) Unesite svoj ID e-pošte i pošaljite.
Korak 5) Prikažite vjerodajnice za pristup prilikom slanja stranice.
Kada izvršite kôd, vidjet ćete da je podređeni prozor otvoren u novoj kartici.
- Zatvorite prozor Child na kojem su prikazane vjerodajnice.
- Prebacite se na roditeljski prozor.
Kako se nositi s višestrukim Windows in Selenium
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 { WebDriver driver=new FirefoxDriver(); //Launching the site. 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(); // To handle all new opened window. Set<String> s1=driver.getWindowHandles(); Iterator<String> i1=s1.iterator(); while(i1.hasNext()) { String ChildWindow=i1.next(); if(!MainWindow.equalsIgnoreCase(ChildWindow)) { // Switching to Child window driver.switchTo().window(ChildWindow); driver.findElement(By.name("emailid")) .sendKeys("gaurav.3n@gmail.com"); driver.findElement(By.name("btnLogin")).click(); // Closing the Child Window. driver.close(); } } // Switching to Parent window i.e Main Window. driver.switchTo().window(MainWindow); } }
Izlaz:
Kada izvršite gornji kod, on pokreće web mjesto i kada kliknete na vezu "Kliknite ovdje", otvara se podređeni prozor u novoj kartici. Možete zatvoriti podređeni prozor i prebaciti se na nadređeni prozor kada je operacija u potpunosti obavljena. Stoga rukovanje s više od jednog prozora u aplikaciji.
Zaključak
- Definirali smo vrste upozorenja i prikazali ih snimkom zaslona.
- Demonstrirano rukovanje uzbunom sa Selenium WebDriver koji koristi određeni scenarij.
- Rukovao s više prozora Selenium WebDriver koji koristi određeni scenarij.