how handle alerts popups selenium webdriver selenium tutorial 16
Učinkoviti načini ravnanja z Windows in spletnimi opozorili / pojavnimi okni v programu Selenium WebDriver:
kakšna je razlika med zunanjim in levim spojem
V prejšnji vaji smo razpravo osredotočili na različne vrste čakanja, ki jih ponuja WebDriver . Pogovarjali smo se tudi o različnih vrstah navigacijskih možnosti, ki so na voljo v programu WebDriver.
Premik naprej v Vadnice za selen WebDriver , bomo razpravljali o različne vrste opozoril, ki so na voljo med preizkušanjem spletnih aplikacij in njihovih strategij ravnanja.
Obstajata dve vrsti opozoril, na katere bi se osredotočili predvsem :
- Pojavna okna z opozorili v sistemu Windows
- Spletna pojavna okna z opozorili
Ker vemo, da ravnanje s pojavnimi okni, ki temeljijo na oknih, presega zmožnosti WebDriverja, bi zato izvajali nekatere pripomočke drugih proizvajalcev za obdelavo pojavnih oken.
Ravnanje s pojavnimi okni je eno najzahtevnejših del za avtomatizacijo med testiranjem spletnih aplikacij. Zaradi raznolikosti vrst pojavnih oken razmere še bolj zapletejo.
Kaj je polje z opozorili / pojavno okno / okence za potrditev / poziv / okence za preverjanje pristnosti?
Na zaslonu se na zaslonu prikaže majhno okence, ki vam daje neke informacije ali vas opozori na morebitno škodljivo operacijo ali pa vas celo vpraša za dovoljenja.
Primer: Za boljše razumevanje si oglejmo primer iz resničnega življenja; Predpostavimo, da smo fotografijo naložili na katero koli od teh priljubljenih spletnih mest za družabna omrežja. Kasneje želim naloženo fotografijo izbrisati. Torej, da bi izbrisal, sem kliknil gumb za brisanje. Takoj ko kliknem na gumb za brisanje, me sistem opozori pred mojim dejanjem in me vpraša - Ali res želite izbrisati datoteko? Zdaj imamo na voljo možnost, da to opozorilo sprejmemo ali zavrnemo.
Torej pred zasedanjem, poglejmo, kako zavrnemo ali sprejmemo opozorila glede na njihovo vrsto. Začenši s spletnimi pojavnimi okni.
Kaj se boste naučili:
Spletna pojavna okna
Poglejmo, kako ravnamo z njimi z uporabo WebDriverja.
Upravljanje pojavnih oken na spletu
WebDriver ponuja uporabnikom zelo učinkovit način za obvladovanje teh pojavnih oken z uporabo vmesnika Alert.
Obstajajo štiri metode, ki bi jih uporabljali skupaj z vmesnikom Alert.
1) razveljavi razveljavitev () - Metoda dismiss () klikne gumb »Prekliči« takoj, ko se prikaže pojavno okno.
dva) neveljavno sprejme () - Metoda accept () klikne gumb »Ok« takoj, ko se prikaže pojavno okno.
3) String getText () - Metoda getText () vrne besedilo, prikazano v opozorilnem polju.
4) void sendKeys (niz stringToSend) - Metoda sendKeys () vnese določen vzorec niza v opozorilno polje.
Pojdimo naprej in si oglejmo dejansko izvajanje.
Pojasnilo prijave v preskusu
Spletno stran smo zasnovali tako, da vključuje nekaj temeljnih vrst spletnih elementov. To je ista aplikacija, ki smo jo predstavili med razpravljanjem o razredu Select prej v tej seriji.
- Hiperpovezava : Na voljo sta hiperpovezavi, in sicer »Google« in »abodeQA«, ki uporabnika preusmeri na »http://www.google.com/« oziroma »http://www.abodeqa.com/« na kliknite dogodek.
- Spustni meni : Tri hiperpovezave so bile ustvarjene za izbiro barv, sadja in živali s privzeto vrednostjo.
- Gumb : Ustvarjen je bil gumb »poskusi«, da se prikaže pojavno okno z gumbi OK in Cancel ob dogodku klika.
(Kliknite sliko za ogled povečave)
Sledi koda HTML, ki se uporablja za ustvarjanje zgoraj omenjene spletne strani:
Testiranje izbranega razredaRdeča Zelena Rumena Siva | Jabolčno oranžno mango apno | Izberite Slon mišji pes |
Kliknite gumb, da se prikaže potrditveno polje. Preizkusite funkcijo myFunction () {potrdi ('Pritisnite gumb!'); } |
Scenarij za avtomatizacijo
- Zaženite spletni brskalnik in odprite spletno stran
- Kliknite gumb »Poskusi«
- Sprejmite opozorilo
- Ponovno kliknite gumb »Poskusi«
- Zavrnite opozorilo
Koda WebDriver z uporabo izbranega razreda
Upoštevajte, da bomo za ustvarjanje skriptov uporabljali projekt »Learning_Selenium«, ustvarjen v prejšnji vadnici.
Korak 1 : Ustvarite nov razred Java, imenovan 'DemoWebAlert' v projektu 'Learning_Selenium'.
2. korak : Kopirajte in prilepite spodnjo kodo v razredu 'DemoWebAlert.java'.
Spodaj je preskusni skript, ki je enakovreden zgoraj omenjenemu scenariju.
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(); } }
Sprehod skozi kodo
Izjave o uvozu
Uvozi org.openqa.selenium.Alert - Uvozite ta paket pred izdelavo skripta. Paket se sklicuje na razred Alert, ki je potreben za obdelavo spletnih opozoril v programu WebDriver.
Ustvarjanje predmeta za razred opozorila
Opozorilo opozorila = driver.switchTo (). Alert ();
Ustvarimo referenčno spremenljivko za razred Opozorilo in jo napotimo na opozorilo.
kako dodati element matriki v javi
Preklopite na Opozorilo
Driver.switchTo (). Alert ();
Zgornji ukaz se uporablja za preklop nadzora na nedavno ustvarjeno pojavno okno.
Sprejmite opozorilo
alert.accept ();
Zgornji ukaz sprejme opozorilo in s tem klikne gumb V redu.
Zavrni opozorilo
alert.dismiss ();
Zgornji ukaz zapre opozorilo in s tem klikne gumb Prekliči, zato se operacija ne bi smela nadaljevati.
Pojavna okna na osnovi oken
Včasih med avtomatizacijo dobimo nekaj scenarijev, ko moramo med nalaganjem datoteke obdelovati pojavna okna, ki jih ustvarijo okna, kot je pojavno okno za tiskanje ali okno za brskanje.
Preberite tudi = >> Kako ravnati z nalaganjem datotek v programu Selenium
Ravnanje s temi pojavnimi okni je bilo vedno nekoliko zapleteno, saj vemo, da je Selenium orodje za avtomatizacijo, ki podpira samo testiranje spletnih aplikacij, kar pomeni, da ne podpira aplikacij, ki temeljijo na oknih, in opozorilno okno je eno izmed njih. Vendar samo selenij situaciji ne more pomagati, vendar je to težavo mogoče rešiti skupaj s posredovanjem tretjih oseb.
Na voljo je več drugih orodij za obdelavo pojavnih oken, ki temeljijo na oknih, skupaj s selenom.
najboljša brezplačna programska oprema za izboljšanje zmogljivosti računalnika
Zdaj se lotimo pojavnega okna, ki temelji na oknih, z uporabo razreda Robot.
Robot class je pripomoček na osnovi jave, ki posnema delovanje tipkovnice in miške.
Preden nadaljujemo, si vzemimo trenutek, da si ogledamo testno aplikacijo (AUT).
Pojasnilo prijave v preskusu
Kot testna aplikacija bi uporabili »gmail.com«. Menim, da aplikacija ne zahteva več predstavitev.
Scenarij za avtomatizacijo
- Zaženite spletni brskalnik in odprite aplikacijo - 'gmail.com'
- Vnesite veljavno uporabniško ime in geslo
- Kliknite gumb za prijavo
- Kliknite gumb za sestavljanje
- Kliknite ikono za prilogo
- Izberite datoteke, ki jih želite naložiti, s pojavnim oknom, ki temelji na oknu.
Koda WebDriver z uporabo Robot Class
Upoštevajte, da bomo za ustvarjanje skriptov uporabljali projekt »Learning_Selenium«, ustvarjen v prejšnji vadnici.
Korak 1 : Ustvarite nov razred Java, imenovan 'DemoWindowAlert' v projektu 'Learning_Selenium'.
2. korak : Kopirajte in prilepite spodnjo kodo v razredu “DemoWindowAlert.java”.
Spodaj je preskusni skript, ki je enakovreden zgoraj omenjenemu scenariju.
import java.awt.Robot;
uvoz java.awt.event.KeyEvent; import org.junit.After; uvoz org.junit.Before; uvoz org.junit.Test; uvoz org.openqa.selenium.By; uvoz org.openqa.selenium.WebDriver; uvoz org.openqa.selenium.firefox.FirefoxDriver; javni razred DemoWindowAlert {gonilnik WebDriver; @Before public void setUp () {driver = nov FirefoxDriver (); driver.get ('https://gmail.com'); driver.manage (). window (). maximize (); } @Test public void testWindowAlert () vrže izjemo {// vnesite veljaven e-poštni naslov driver.findElement (By.id ('Email')). SendKeys ('TestSelenium1607@gmail.com '); // vnesite veljaven gonilnik gesla.findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // kliknite gumb za prijavo driver.findElement (By.id ('signIn')). click (); Navoj.spanje (30000); // kliknite na gumb za sestavljanje gonilnika.findElement (By.xpath ('// div (@ class =' z0 ') // div (vsebuje (besedilo (),' SESTAVLJENO '))')). klik (); // kliknemo ikono priponk datotek driver.findElement (By.xpath ('// div (vsebuje (@ ukaz,' Datoteke ')) // div (vsebuje (@ razred,' aaA '))')). klik ( ); // ustvarjanje primerka razreda Robot (pripomoček, ki temelji na javi) Robot rb = new Robot (); // pritiskanje tipk s pomočjo keyPress in keyRelease dogodkov 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); } @Po javni void tearDown () {driver.quit (); }} Sprehod skozi kodo
Izjave o uvozu
uvoz java.awt.Robot - Uvozite ta paket pred izdelavo skripta. Paket se sklicuje na razred Robot v javi, ki je potreben za simulacijo dogodkov na tipkovnici in miški.
uvoz java.awt.event.KeyEvent - Paket omogoča uporabniku uporabo dogodkov keyPress in keyRelease na tipkovnici.
Ustvarjanje predmetov za razred Robot
Robot rb = nov robot ();
Ustvarimo referenčno spremenljivko za razred Robot in jo primerimo.
KeyPress in KeyRelease Dogodki
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
Metodi keyPress in keyRelease simulirata, kako uporabnik pritiska in spušča določeno tipko na tipkovnici.
Zaključek
V tej vadnici smo vas poskušali seznaniti z razredom opozorila WebDriver's, ki se uporablja za obdelavo spletnih pojavnih oken. Prav tako smo vas seznanili z razredom Robot, s pomočjo katerega lahko s pomočjo dogodkov keyPress in keyRelease zapolnimo vrednost v opozorilnem oknu.
Povzetek članka:
- Opozorila so majhno okence, ki se prikaže na zaslonu, da vam da neke vrste informacije ali vas opozori na potencialno škodljivo operacijo ali pa vas celo vpraša za dovoljenja za operacijo.
- Običajno obstajata dve vrsti opozoril -
- Pojavna okna z opozorili v sistemu Windows
- Pojavna okna s spletnim opozorilom
- Pred dejanskim skriptiranjem moramo uvoziti paket, da bomo lahko ustvarili skript WebDriver za obdelavo spustnega menija in dostopnost razreda Select.
- WebDriver ponuja uporabnikom zelo učinkovit način za obvladovanje teh pojavnih oken z uporabo vmesnika Alert.
- razveljavi razveljavitev () - The opusti () metoda klikne gumb »Prekliči« takoj, ko se prikaže pojavno okno.
- neveljavno sprejme () - The sprejme () metoda klikne gumb »V redu« takoj, ko se prikaže pojavno okno.
- Vrvica getText () - The getText () vrne besedilo, prikazano v opozorilnem polju.
- void sendKeys (niz stringToSend) - The sendKeys () metoda vnese določen vzorec niza v opozorilno polje.
- Ravnanje s pojavnimi okni, ki temeljijo na oknih so bili vedno nekoliko zapleteni, saj vemo, da je Selenium orodje za avtomatizacijo, ki podpira samo testiranje spletnih aplikacij, kar pomeni, da ne podpira aplikacij, ki temeljijo na oknih, in opozorilno okno je eno izmed njih.
- Razred robota je pripomoček na osnovi Java, ki posnema dejanja tipkovnice in miške in ga je mogoče učinkovito uporabiti za obdelavo pojavnih oken s pomočjo oken s pomočjo dogodkov na tipkovnici.
- Metodi keyPress in keyRelease simulirata, kako uporabnik pritiska in spušča določeno tipko na tipkovnici.
Naslednja vadnica št : V prihajajoči vadnici bi razpravljali o različnih drugih pogosto uporabljeni ukazi WebDriver . Osvetlili bi teme, kot so ravnanje z izjemami in ravnanje z okvirji. Pogovorili bi se tudi o ukazih za pridobivanje, ki jih ponuja WebDriver.
Te teme bi razložili s hitrimi primeri, da bi bralci postali razumljivejši za izvajanje teh konceptov pri vsakdanjem skriptiranju.
Opomba za bralce : Do takrat spremljajte in avtomatizirajte spletne strani s spletnimi in okenskimi pojavnimi okni s pripomočkom WebDriver - »Razred opozorila« in pripomočkom Java - »Robot Class«.
Svoje poizvedbe / komentarje o tej ali kateri koli prejšnji vadnici lahko objavite v spodnjih komentarjih.
Priporočeno branje
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver
- Uvod v Selenium WebDriver - Vadnica za selenij št. 8
- Implementacija našega prvega skripta WebDriver - Vadnica # 10 za selenium WebDriver
- Celotna namestitev in namestitev WebDriverja z Eclipse - Vadnica za selen št. 9
- Preverite vidnost spletnih elementov z različnimi vrstami ukazov WebDriver - Vadnica za selen št. 14
- Vadnica za GeckoDriver Selenium: Kako uporabljati GeckoDriver v projektih Selenium
- Integracija Jenkinsa s selenium WebDriver: Vadnica po korakih
- Učinkoviti scenariji za skriptiranje in odpravljanje težav s selenijem - Vadnica za selenij št. 27