Slik håndterer du varsler og popup-vinduer i Selenium?
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.














