how handle alerts popups selenium webdriver selenium tutorial 16
Effektive måder at håndtere Windows og webbaserede alarmer / pop op i Selenium WebDriver:
hvordan man kalder et array fra en anden metode i java
I den foregående vejledning fokuserede vi vores diskussion på forskellige typer ventetider leveret af WebDriver . Vi diskuterede også forskellige typer navigationsindstillinger, der er tilgængelige i WebDriver.
Gå videre i Selen WebDriver Tutorials , vi vil diskutere om forskellige typer alarmer tilgængelige under test af webapplikationer og deres håndteringsstrategier.
Der er to typer alarmer, som vi hovedsageligt vil fokusere på :
- Windows-baserede pop op-vinduer
- Web-baserede pop op-vinduer
Da vi ved, at håndtering af Windows-baserede pop op-vinduer ligger uden for WebDrivers muligheder, vil vi derfor udøve nogle tredjepartsværktøjer til at håndtere vinduespopups.
Håndtering af pop op er et af de mest udfordrende stykker arbejde at automatisere, mens man tester webapplikationer. På grund af mangfoldigheden i typer af pop-ups kompleksiserer situationen endnu mere.
Hvad er alarmboks / pop op-boks / bekræftelsesfelt / prompt / godkendelsesboks?
Det er intet andet end en lille boks, der vises på skærmen for at give dig en slags information eller for at advare dig om en potentielt skadelig handling, eller det kan endda bede dig om tilladelserne til operationen.
Eksempel: Lad os overveje et virkeligt eksempel for en bedre forståelse; Lad os antage, at vi uploadede et fotografi på et af disse populære sociale netværkssider. Senere vil jeg slette det uploadede fotografi. Så for at slette klikte jeg på knappen Slet. Så snart jeg klikker på sletningsknappen, advarer systemet mig mod min handling og beder - Vil du virkelig slette filen? Så nu har vi en mulighed for enten at acceptere denne alarm eller afvise den.
Så foran sessionen, lad os se, hvordan vi afviser eller accepterer advarslerne afhængigt af deres typer. Startende med de webbaserede pop op-vinduer.
Hvad du lærer:
Web-baserede pop op-vinduer
Lad os se, hvordan vi håndterer dem ved hjælp af WebDriver.
Håndtering af webbaseret pop op-boks
WebDriver tilbyder brugerne en meget effektiv måde at håndtere disse pop op ved hjælp af Alert interface.
Der er de fire metoder, som vi bruger sammen med alarmgrænsefladen.
1) ugyldig afskedigelse () - Afvisningsmetoden () klikker på knappen 'Annuller', så snart pop op-vinduet vises.
to) ugyldig accept () - Accepter () -metoden klikker på knappen 'Ok', så snart pop op-vinduet vises.
3) String getText () - Metoden getText () returnerer den tekst, der vises i advarselsfeltet.
4) ugyldige sendKeys (String stringToSend) - SendKeys () -metoden indtaster det angivne strengemønster i advarselsboksen.
Lad os gå videre og se på den faktiske implementering.
Forklaring til anvendelse under test
Vi har designet en webside på en måde, der inkluderer nogle få grundlæggende typer af webelementer. Dette er den samme applikation, som vi introducerede, mens vi diskuterede Select klasse tidligere i denne serie.
- Hyperlink : De to hyperlinks, nemlig “Google” og “abodeQA”, er leveret, der omdirigerer brugeren til henholdsvis “http://www.google.com/” og “http://www.abodeqa.com/” på klik på begivenhed.
- Dropdown : De tre hyperlinks er oprettet til valg af farver, frugter og dyr med en værdi, der er sat til standard.
- Knap : En “prøv det” -knap er oprettet for at vise pop op-boksen med knapperne OK og Annuller ved klikhændelse.
(Klik på billedet for at se det forstørret)
Efterfølgende er HTML-koden, der bruges til at oprette ovennævnte webside:
Test Vælg klasseRød Grøn Gul Grå | Apple Orange Mango Lime | Vælg Elephant Mouse Dog |
Klik på knappen for at få vist et bekræftelsesfelt. Prøv det funktion myFunction () {bekræft ('Tryk på en knap!'); } |
Scenarie skal automatiseres
- Start webbrowseren, og åbn websiden
- Klik på knappen 'Prøv det'
- Accepter advarslen
- Klik på knappen 'Prøv det' igen
- Afvis advarslen
WebDriver-kode ved hjælp af Select Class
Vær opmærksom på, at til scriptoprettelse bruger vi “Learning_Selenium” -projektet oprettet i den tidligere tutorial.
Trin 1 : Opret en ny java-klasse med navnet ”DemoWebAlert” under “Learning_Selenium” -projektet.
Trin 2 : Kopier og indsæt nedenstående kode i klassen “DemoWebAlert.java”.
Nedenfor er testscriptet, der svarer til ovennævnte scenario.
import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; /** * class description */ public class DemoWebAlert { WebDriver driver; /** * Constructor */ public DemoWebAlert() { } /** * Set up browser settings and open the application */ @Before public void setUp() { driver=new FirefoxDriver(); // Opened the application driver.get('file:///F:/Work/Selenium/Testing-Presentation/DemoWebPopup.htm'); driver.manage().window().maximize(); } /** * Test to check Select functionality * @throws InterruptedException */ @Test public void testWebAlert() throws InterruptedException { // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert Alert alert = driver.switchTo().alert(); alert.accept(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert driver.switchTo().alert().dismiss(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert System.out.println(driver.switchTo().alert().getText()); driver.switchTo().alert().accept(); } /** * Tear down the setup after test completes */ @After public void tearDown() { driver.quit(); } }
Kode gennemgang
Importerklæringer
Importér org.openqa.selenium.Alert - Importer denne pakke inden scriptet oprettes. Pakkereferencer til Alert-klassen, der kræves for at håndtere de webbaserede alarmer i WebDriver.
Objektoprettelse til alarmklasse
Alert alarm = driver.switchTo (). Alarm ();
Vi opretter en referencevariabel til Alert-klasse og henviser den til alarmen.
tidskortapp til iPhone og Android
Skift til alarm
Driver.switchTo (). Alarm ();
Ovenstående kommando bruges til at skifte kontrolelementet til det nyligt genererede pop op-vindue.
Accepter advarslen
alarm.accept ();
Ovenstående kommando accepterer advarslen og klikker derpå på knappen Ok.
Afvis advarslen
alarm.dismiss ();
Ovenstående kommando lukker advarslen og klikker derved på knappen Annuller, og operationen bør derfor ikke fortsætte.
Vinduesbaserede pop op-vinduer
Til tider mens vi automatiserer, får vi nogle scenarier, hvor vi har brug for at håndtere pop-ups, der genereres af windows som en pop op-pop-up eller et browservindue, mens vi uploader en fil.
Læs også = >> Sådan håndteres filupload i Selenium
Håndtering af disse pop op-vinduer har altid været lidt vanskelig, da vi ved, at Selenium er et automatiseringstestværktøj, der kun understøtter test af webapplikationer, det betyder, at det ikke understøtter Windows-baserede applikationer, og vinduealarm er en af dem. Men Selen alene kan ikke hjælpe situationen, men sammen med en tredjeparts intervention kan dette problem overvindes.
Der er flere tredjepartsværktøjer til rådighed til håndtering af vinduesbaserede pop op-vinduer sammen med selen.
hvad er den bedste software til fjernelse af malware
Så lad os nu håndtere en vinduesbaseret pop op ved hjælp af Robot-klasse.
Robotklasse er et java-baseret værktøj, der efterligner tastatur- og mushandlingerne.
Før vi går videre, skal vi tage et øjeblik til at se på applikationen under test (AUT).
Forklaring til anvendelse under test
Som en applikation under test bruger vi “gmail.com”. Jeg mener, at applikationen ikke kræver flere introduktioner.
Scenarie skal automatiseres
- Start webbrowseren, og åbn applikationen - “gmail.com”
- Indtast gyldigt brugernavn og adgangskode
- Klik på login-knappen
- Klik på komponeringsknappen
- Klik på vedhæftningsikonet
- Vælg de filer, der skal uploades, med det vinduesbaserede pop op.
WebDriver-kode ved hjælp af robotklasse
Vær opmærksom på, at til scriptoprettelse bruger vi “Learning_Selenium” -projektet oprettet i den tidligere tutorial.
Trin 1 : Opret en ny java-klasse med navnet ”DemoWindowAlert” under “Learning_Selenium” -projektet.
Trin 2 : Kopier og indsæt nedenstående kode i klassen “DemoWindowAlert.java”.
Nedenfor er testscriptet, der svarer til ovennævnte scenario.
import java.awt.Robot;
import java.awt.event.KeyEvent; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; offentlig klasse DemoWindowAlert {WebDriver-driver; @Før offentlig ugyldig setUp () {driver = ny FirefoxDriver (); driver.get ('https://gmail.com'); driver.manage (). vindue (). maksimere (); } @ Test offentlig ugyldig testWindowAlert () kaster Undtagelse {// indtast en gyldig e-mail-adresse driver.findElement (By.id ('E-mail')). SendKeys ('TestSelenium1607@gmail.com '); // indtast en gyldig adgangskodedriver.findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // klik på driver til indlogningsknap.findElement (By.id ('signIn')). klik (); Tråd. Søvn (30000); // klik på komponent-knapdriver.findElement (By.xpath ('// div (@ class =' z0 ') // div (indeholder (tekst (),' COMPOSE '))')). klik (); // klik på vedhæft filer ikon driver.findElement (By.xpath ('// div (indeholder (@ kommando,' Filer ')) // div (indeholder (@ klasse,' aaA '))')). klik ( ); // opretter forekomst af robotklasse (Et java-baseret værktøj) Robot rb = ny robot (); // trykke på taster ved hjælp af keyPress og keyRelease events rb.keyPress (KeyEvent.VK_D); rb.keyRelease (KeyEvent.VK_D); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_BACK_SLASH); rb.keyRelease (KeyEvent.VK_BACK_SLASH); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_P); rb.keyRelease (KeyEvent.VK_P); rb.keyPress (KeyEvent.VK_I); rb.keyRelease (KeyEvent.VK_I); rb.keyPress (KeyEvent.VK_C); rb.keyRelease (KeyEvent.VK_C); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_ENTER); rb.keyRelease (KeyEvent.VK_ENTER); Thread.sleep (2000); } @Efter offentlig ugyldighed tearDown () {driver.quit (); }} Kode gennemgang
Importerklæringer
importer java.awt.Robot - Importer denne pakke inden oprettelse af script Pakkehenvisningerne til klassen Robot i java, der kræves, simulerer tastatur- og musebegivenheder.
importer java.awt.event.KeyEvent - Pakken giver brugeren mulighed for at bruge keyPress og keyRelease begivenheder på et tastatur.
Objekt oprettelse til robot klasse
Robot rb = ny robot ();
Vi opretter en referencevariabel til robotklassen og instantierer den.
KeyPress og KeyRelease begivenheder
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
KeyPress- og keyRelease-metoderne simulerer brugeren, der trykker på og frigiver en bestemt tast på henholdsvis tastaturet.
Konklusion
I denne vejledning forsøgte vi at gøre dig bekendt med WebDrivers Alert-klasse, der bruges til at håndtere webbaserede pop-up. Vi orienterede dig også om Robot-klassen, der kan bruges til at udfylde værdien i den vinduesbaserede alarm ved hjælp af keyPress og keyRelease begivenheder.
Artikelsammendrag:
- Alarmer er en lille boks, der vises på skærmen for at give dig en slags information eller for at advare dig om en potentielt skadelig handling, eller det kan endda bede dig om tilladelserne til operationen.
- Der er populært to typer alarmer -
- Windows-baserede pop op-advarsler
- Webbaseret pop op-alarm
- Før den faktiske scripting er vi nødt til at importere en pakke for at kunne oprette et WebDriver-script til håndtering af et drop-down og gøre Select-klassen tilgængelig.
- WebDriver tilbyder brugerne en meget effektiv måde at håndtere disse pop op ved hjælp af Alert interface.
- ugyldig afskedigelse () - Det afskedige() metode klikker på knappen 'Annuller', så snart pop op-vinduet vises.
- ugyldig accept () - Det acceptere() metode klikker på “Ok” -knappen, så snart pop op-vinduet vises.
- Snor getText () - Det getText () metode returnerer teksten, der vises i advarselsfeltet.
- ugyldige sendKeys (String stringToSend) - Det sendKeys () metode angiver det angivne strengemønster i advarselsboksen.
- Håndtering af vinduesbaserede pop op-vinduer har altid været lidt vanskelig, da vi ved Selen er et automatiseringsprøvningsværktøj, der kun understøtter test af webapplikationer, det vil sige, det understøtter ikke Windows-baserede applikationer, og vinduesalarm er en af dem.
- Robot klasse er et java-baseret værktøj, der efterligner tastatur- og mushandlinger og effektivt kan bruges til at håndtere vinduesbaseret pop op ved hjælp af tastaturhændelser.
- KeyPress- og keyRelease-metoderne simulerer brugeren, der trykker på og frigiver en bestemt tast på henholdsvis tastaturet.
Næste tutorial # 17 : I den kommende tutorial, ville vi diskutere om de forskellige andre almindeligt anvendte WebDriver-kommandoer . Vi kaster lys over emner som undtagelseshåndtering og iframe-håndtering. Vi vil også diskutere de get-kommandoer, der findes i WebDriver.
Vi ville forklare disse emner med hurtige eksempler for at gøre dem forståelige for læserne at udøve disse begreber i deres daglige scripting.
Bemærk til læserne : Indtil da skal du holde dig opdateret og automatisere de websider, der har de webbaserede og vinduesbaserede pop op-vinduer ved hjælp af WebDriver-værktøjet - 'Alert class' og Java utility - 'Robot Class'.
Du er velkommen til at sende dine forespørgsler / kommentarer om dette eller andre tidligere tutorials i kommentarerne nedenfor.
Anbefalet læsning
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- Implementering af vores første WebDriver Script - Selenium WebDriver Tutorial # 10
- WebDriver hele opsætningen og installationen med Eclipse - Selenium-tutorial # 9
- Kontroller synligheden af webelementer ved hjælp af forskellige typer WebDriver-kommandoer - Selen-vejledning nr. 14
- GeckoDriver Selen Tutorial: Sådan bruges GeckoDriver i Selenium-projekter
- Integration af Jenkins med Selen WebDriver: Trin-for-trin vejledning
- Effektiv Selen Scripting og fejlfinding af scenarier - Selen Tutorial # 27