Selen Alert & Popup-vindueshåndtering: Hvordan håndteres det?

Indholdsfortegnelse:

Anonim

I denne vejledning lærer vi, hvordan man håndterer popup i Selen og forskellige typer alarmer, der findes i test af webapplikationer. Vi vil også se, hvordan man håndterer Alert i Selenium WebDriver og lære, hvordan vi accepterer og afviser advarslen afhængigt af alarmtyperne.

I denne vejledning lærer du-

  • Hvad er alarm?
  • Sådan håndteres Alert i Selen WebDriver
  • Sådan håndteres Selenium Popup-vindue ved hjælp af Webdriver

Hvad er alarm i selen?

En advarsel i selen er en lille meddelelsesboks, der vises på skærmen for at give brugeren nogle oplysninger eller underretninger. Det underretter brugeren med nogle specifikke oplysninger eller fejl, beder om tilladelse til at udføre bestemte opgaver, og det giver også advarsler.

Her er få advarsler i selentyper:

1) Enkel advarsel

Den enkle alarmklasse i Selenium viser nogle oplysninger eller advarsler på skærmen.

2) Spørg alarm.

Denne promptadvarsel beder noget input fra brugeren, og Selenium webdriver kan indtaste teksten ved hjælp af sendkeys ("input

…. ").

3) Bekræftelsesadvarsel.

Denne bekræftelsesalarm beder om tilladelse til at udføre en slags operation.

Sådan håndteres Alert i Selen WebDriver

Alert-interface giver nedenstående få metoder, som er meget udbredt i Selenium Webdriver.

1) ugyldig afvisning () // Klik på knappen 'Annuller' i alarmen.

driver.switchTo (). alarm () afskedige ();

2) ugyldig accept () // Klik på 'OK' knappen i alarmen.

driver.switchTo (). alarm (). accepter ();

3) String getText () // At fange alarmmeddelelsen.

driver.switchTo (). alarm (). getText (); 

4) ugyldige sendKeys (String stringToSend) // At sende nogle data til advarselsfeltet.

driver.switchTo (). alarm (). sendKeys ("Tekst");

Du kan se, at et antal advarselsmetoder vises som vist på nedenstående skærm, foreslået af Eclipse.

Vi kan let skifte til alarm fra hovedvinduet ved hjælp af Seleniums .switchTo () metode.

Nu automatiserer vi nedenstående scenarie.

I dette scenario bruger vi Guru99-demo-webstedet til at illustrere håndtering af Selen Alert.

Trin 1) Start webbrowseren og åbn webstedet "http://demo.guru99.com/test/delete_customer.php"

Trin 2) Indtast ethvert kunde-id.

Trin 3) Når du har indtastet kunde-id'et, skal du klikke på knappen "Send".

Trin 4) Afvis / accepter advarslen.

Håndtering af alarm i Selenium Webdriver ved hjælp af ovenstående scenarie

importer 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;offentlig klasse AlertDemo {offentlig statisk ugyldig hoved (String [] args) kaster NoAlertPresentException, InterruptedException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-driver = ny ChromeDriver ();// Alert Beskedhåndteringdriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (Efter.navn ("indsend")). indsend ();// Skift til alarmAlert alarm = driver.switchTo (). Alarm ();// Optager advarselsmeddelelse.Streng alarmMessage = driver.switchTo (). Alarm (). GetText ();// Viser advarselsmeddelelseSystem.out.println (alertMessage);Tråd. Søvn (5000);// Accepterer alarmalarm.accept ();}}

Output:

Når du udfører ovenstående kode, starter den webstedet. Prøv at slette kunde-id ved at håndtere en bekræftelsesalarm, der vises på skærmen, og derved slette kunde-id fra applikationen.

Sådan håndteres Selen Pop-up-vindue ved hjælp af Webdriver

I automatisering, når vi har flere vinduer i enhver webapplikation, skal aktiviteten muligvis skifte kontrol mellem flere vinduer fra det ene til det andet for at fuldføre operationen. Efter afslutningen af ​​operationen skal den vende tilbage til hovedvinduet, dvs. overordnet vindue i Selen. Vi vil se dette yderligere i artiklen med et eksempel.

I Selenium-webdriver er der metoder, hvorigennem vi kan håndtere flere vinduer.

Driver.getWindowHandles ();

For at håndtere alle åbnede vinduer via webdriver kan vi bruge "Driver.getWindowHandles ()" og derefter kan vi skifte vindue fra et vindue til et andet i en webapplikation. Dens returtype er Iterator .

Driver.getWindowHandle ();

Når webstedet åbnes, skal vi håndtere hovedvinduet af driver.getWindowHandle () . Dette håndterer det aktuelle vindue, der entydigt identificerer det i denne driverinstans. Dens returtype er String.

For vindueshåndtering i selen følger vi nedenstående trin:

Nu automatiserer vi nedenstående scenarie for at se, hvordan man håndterer flere vinduer ved hjælp af Selenium Webdriver.

I dette scenarie vil vi bruge "Guru99" demo-site til at illustrere vindueshåndtering.

Trin 1) Start webstedet.

Start browseren, og åbn webstedet " http://demo.guru99.com/popup.php "

Trin 2) Klik på linket "Klik her".

Når brugeren klikker på linket "Klik her", åbnes et nyt underordnet vindue.

Trin 3) Vinduet Nyt barn åbnes.

Et nyt vindue åbnes, bed brugeren om at indtaste e-mail-id og indsende siden.

Trin 4) Indtast dit e-mail-id og indsend.

Trin 5) Vis adgangsoplysningerne ved indsendelse af siden.

Når du udfører koden, vil du se barnevinduet åbent i den nye fane.

  1. Luk vinduet Child, hvor legitimationsoplysninger vises.
  1. Skift til det overordnede vindue.

Håndtering af flere vinduer i Selenium webdriver ved hjælp af ovenstående scenarie.

import java.util.Iterator;importere java.util.Set;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;offentlig klasse WindowHandle_Demo {offentligt statisk ugyldigt hoved (String [] args) kaster InterruptedException {WebDriver-driver = ny FirefoxDriver ();// Start af webstedet.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). vindue (). maksimere ();driver.findElement (By.xpath ("// * [indeholder (@ href, 'popup.php')]")). klik ();String MainWindow = driver.getWindowHandle ();// At håndtere alt nyt åbnet vindue.Indstil  s1 = driver.getWindowHandles ();Iterator  i1 = s1.iterator ();mens (i1.hasNext ()){String ChildWindow = i1.next ();hvis (! MainWindow.equalsIgnoreCase (ChildWindow)){// Skift til underordnet vinduedriver.switchTo (). vindue (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.");driver.findElement (By.name ("btnLogin")). klik ();// Lukning af barnevinduet.driver.close ();}}// Skift til overordnet vindue, dvs. hovedvindue.driver.switchTo (). vindue (MainWindow);}}

Produktion:

Når du udfører ovenstående kode, starter den webstedet, og når du klikker på linket "Klik her", åbnes det et undervindue i en ny fane. Du kan lukke undervinduet og skifte til det overordnede vindue, når operationen er fuldført. Derfor håndteres mere end et vindue i applikationen.

Håndtering af flere vinduer i selen

Konklusion:

  • Vi definerede typer alarmer og viste dem med et skærmbillede.
  • Demonstreret håndtering af Alert med Selenium WebDriver ved hjælp af et bestemt scenario.
  • Håndterede flere vinduer med Selenium WebDriver ved hjælp af et bestemt scenario.