Hvordan å takle Selenium Varsler og popup-vinduer?
Hva er Alert i Selenium?
An Varsle inn Selenium er en liten meldingsboks som vises på skjermen for å gi brukeren informasjon eller varsel. Den varsler brukeren med noen spesifikk informasjon eller feil, ber om tillatelse til å utføre visse oppgaver, og den gir også advarselsmeldinger.
I denne opplæringen lærer vi hvordan du håndterer popup-vinduer Selenium og ulike typer varsler som finnes i nettapplikasjoner Testing. Vi vil også se hvordan du håndterer Alert in Selenium WebDriver og lær hvordan vi godtar og avviser varselet avhengig av varslingstypene.
Typer varsler i Selenium
1) Simple Alert
Den enkle varslingsklassen i Selenium viser informasjon eller advarsel på skjermen.
2) Prompt Alert
Dette Prompt Alert ber om noen innspill fra brukeren og Selenium webdriver kan skrive inn teksten ved å bruke sendkeys(” input…. “).
3) Confirmation Alert
Dette bekreftelsesvarslet ber om tillatelse til å utføre en eller annen type operasjon.
Hvordan håndtere Alert in Selenium webdriver
Varslingsgrensesnitt gir noen få metoder nedenfor som er mye brukt i Selenium Webdriver.
1) void avvis() // For å klikke på 'Avbryt'-knappen i varselet.
driver.switchTo().alert().dismiss();
2) void accept()// For å klikke på 'OK'-knappen i varselet.
driver.switchTo().alert().accept();
3) String getText() // For å fange opp varselmeldingen.
driver.switchTo().alert().getText();
4) void sendKeys(String stringToSend) // For å sende noen data til varslingsboksen.
driver.switchTo().alert().sendKeys("Text");
Du kan se en rekke varslingsmetoder vises som vist på skjermen nedenfor foreslått av Eclipse.
Vi kan enkelt bytte til varsling fra hovedvinduet ved å bruke Selenium'S .switchTo() metoden.
Nå automatiserer vi scenariet nedenfor.
I dette scenariet vil vi bruke Guru99 demoside for å illustrere Selenium Varslingshåndtering.
Trinn 1) Start nettleseren og åpne siden https://demo.guru99.com/test/delete_customer.php
Trinn 2) Skriv inn en hvilken som helst kunde-ID.
Trinn 3) Etter å ha angitt kunde-ID, klikk på "Send"-knappen.
Trinn 4) Avvis/godta varselet.
Håndteringsvarsling inn 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(); } }
Utgang:
Når du kjører koden ovenfor, starter den nettstedet. Prøv å slette kunde-ID ved å håndtere bekreftelsesvarsling som vises på skjermen, og dermed slette kunde-ID fra applikasjonen.
Hvordan håndtere popup-vindu ved hjelp av Selenium Webdriver
I automatisering, når vi har flere vinduer i en nettapplikasjon, kan aktiviteten trenge å bytte kontroll mellom flere vinduer fra ett til et annet for å fullføre operasjonen. Etter at operasjonen er fullført, må den gå tilbake til hovedvinduet, dvs. foreldrevinduet Selenium. Vi vil se dette videre i artikkelen med et eksempel.
In Selenium webdriver er det metoder som vi kan håndtere flere vinduer gjennom.
Driver.getWindowHandles();
For å håndtere alle åpne vinduer av nettdriver, kan vi bruke "Driver.getWindowHandles()" og deretter kan vi bytte vindu fra ett vindu til et annet i en nettapplikasjon. Returtypen er Iterator .
Driver.getWindowHandle();
Når siden åpner, må vi håndtere hovedvinduet ved å driver.getWindowHandle(). Dette vil håndtere det gjeldende vinduet som unikt identifiserer det i denne driverforekomsten. Returtypen er String.
For vindushåndtering i Selenium, vil vi følge trinnene nedenfor:
Nå vil vi automatisere scenariet nedenfor for å se hvordan du håndterer flere vinduer ved å bruke Selenium Webdriver.
I dette scenariet vil vi bruke "Guru99" demoside for å illustrere vindushåndtering.
Trinn 1) Start nettstedet.
Start nettleseren og åpne siden https://demo.guru99.com/popup.php
Trinn 2) Klikk på linken "Klikk her".
Når brukeren klikker på " Klikk her "-koblingen, åpnes et nytt underordnet vindu.
Trinn 3) Nytt barn-vindu åpnes.
Et nytt vindu åpnes, be brukeren skrive inn e-post-ID og sende inn siden.
Trinn 4) Skriv inn e-post-ID og send inn.
Trinn 5) Vis tilgangsinformasjonen når du sender inn siden.
Når du kjører koden, vil du se at underordnet vinduet er åpent i ny fane.
- Lukk underordnet vinduet der legitimasjonen vises.
- Bytt til foreldrevinduet.
Hvordan håndtere flere 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); } }
Utgang:
Når du utfører koden ovenfor, starter den nettstedet, og ved å klikke på lenken "Klikk her", åpnes et underordnet vindu i en ny fane. Du kan lukke barnevinduet og bytte til overordnet vinduet når operasjonen er fullført. Håndterer derfor mer enn ett vindu i applikasjonen.
Konklusjon
- Vi definerte varslingstypene og viste dem med et skjermbilde.
- Demonstrert håndtering av varselet med Selenium WebDriver som bruker et bestemt scenario.
- Håndterte flere vinduer med Selenium WebDriver som bruker et bestemt scenario.