how handle alerts popups selenium webdriver selenium tutorial 16
Učinkoviti načini upravljanja Windows-om i internetskim upozorenjima / skočnim prozorima u Selenium WebDriver:
kako koristiti .swf datoteke
U prethodnom uputstvu usredotočili smo našu raspravu na različite vrste čekanja koje pruža WebDriver . Također smo razgovarali o raznim vrstama navigacijskih opcija dostupnih u WebDriveru.
Kretanje prema Vodiči za selen WebDriver , razgovarat ćemo o različite vrste upozorenja dostupne tijekom testiranja web aplikacija i njihovih strategija rukovanja.
Dvije su vrste upozorenja na koje bismo se uglavnom usredotočili :
- Skočni prozori upozorenja zasnovani na sustavu Windows
- Iskačući prozori upozorenja na webu
Kao što znamo da je rukovanje skočnim prozorima zasnovanim na prozorima izvan mogućnosti WebDrivera, stoga bismo koristili neke uslužne programe trećih strana za rukovanje skočnim prozorima.
Rukovanje iskačućim prozorima jedan je od najizazovnijih djela automatizacije tijekom testiranja web aplikacija. Zahvaljujući raznolikosti vrsta pop-up prozora još više komplicira situaciju.
Što je okvir upozorenja / iskačući okvir / okvir za potvrdu / upit / autentifikacija?
To je samo mali okvir koji se pojavljuje na zaslonu kako bi vam dao neke informacije ili vas upozorio na potencijalno štetnu operaciju, ili čak može tražiti dozvole za operaciju.
Primjer: Razmotrimo primjer iz stvarnog života radi boljeg razumijevanja; Pretpostavimo da smo fotografiju prenijeli na bilo koju od ovih popularnih web lokacija za društvene mreže. Kasnije želim izbrisati prenesenu fotografiju. Dakle, da bih izbrisao, kliknuo sam gumb za brisanje. Čim kliknem na gumb za brisanje, sustav me upozorava protiv mog postupka, tražeći - Želite li zaista izbrisati datoteku? Dakle, sada imamo mogućnost ili prihvatiti ovo upozorenje ili ga odbiti.
Dakle, prije sesije, pogledajmo kako odbijamo ili prihvaćamo upozorenja ovisno o njihovim vrstama. Počevši od internetskih skočnih prozora.
Što ćete naučiti:
Skočni prozori zasnovani na webu

Pogledajmo kako ćemo se nositi s njima pomoću WebDrivera.
Rukovanje iskačućim okvirom putem interneta
WebDriver nudi korisnicima vrlo učinkovit način za rukovanje ovim iskačućim prozorima pomoću sučelja upozorenja.
Postoje četiri metode koje bismo koristili zajedno sa sučeljem Alert.
1) poništi odbacivanje () - Metoda dismiss () klikne gumb 'Odustani' čim se pojavi skočni prozor.
dva) nevažeće prihvatiti () - Metoda accept () klikne na gumb „Ok“ čim se pojavi skočni prozor.
3) Niz getText () - Metoda getText () vraća tekst prikazan u okviru upozorenja.
4) void sendKeys (niz stringToSend) - Metoda sendKeys () unosi navedeni obrazac niza u okvir upozorenja.
Krenimo dalje i pogledajmo stvarnu provedbu.
Objašnjenje prijave koja se ispituje
Dizajnirali smo web stranicu na način da uključuje nekoliko osnovnih vrsta web elemenata. To je ista aplikacija koju smo uveli tijekom raspravljanja o klasi Select ranije u ovoj seriji.
- Hiperveza : Osigurane su dvije hiperveze, naime 'Google' i 'abodeQA', koje korisnika preusmjeravaju na 'http://www.google.com/' odnosno 'http://www.abodeqa.com/' na klikni događaj.
- Padajući : Tri hiperveze stvorene su za odabir boja, voća i životinja s vrijednosti koja je postavljena na zadane vrijednosti.
- Dugme : Stvoren je gumb 'probaj' za prikaz skočnog okvira s gumbima OK i Cancel nakon klika.
(Kliknite na sliku za uvećan prikaz)

Slijedi HTML kôd koji se koristi za izradu gore spomenute web stranice:
Testiranje odabranog razreda| Crvena Zelena Žuta Siva | Jabuka Naranča Mango Lime | Odaberite Pas slona miša |
| Kliknite gumb za prikaz okvira za potvrdu. Isprobajte funkciju myFunction () {potvrda ('Pritisnite tipku!'); } |
Scenarij koji treba automatizirati
- Pokrenite web preglednik i otvorite web stranicu
- Kliknite gumb 'Probaj'
- Prihvatite upozorenje
- Ponovno kliknite gumb 'Probaj'
- Odbijte upozorenje
WebDriver kôd pomoću Select Class
Imajte na umu da bismo za izradu skripti koristili projekt 'Learning_Selenium' stvoren u prethodnom vodiču.
Korak 1 : Stvorite novu java klasu nazvanu „DemoWebAlert“ u okviru projekta „Learning_Selenium“.
Korak 2 : Kopirajte i zalijepite donji kôd u klasu 'DemoWebAlert.java'.
Ispod je testna skripta koja je ekvivalent gore spomenutom 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(); } } Prolaz kroz kod
Izjave o uvozu
Uvoz org.openqa.selenium.Alert - Uvezite ovaj paket prije stvaranja skripte. Paket se odnosi na klasu Alert koja je potrebna za obradu upozorenja zasnovanih na webu u WebDriveru.
Stvaranje objekta za klasu upozorenja
Upozorenje upozorenja = driver.switchTo (). Alert ();
Izrađujemo referentnu varijablu za klasu Alert i upućujemo je na upozorenje.
kako pokrenuti .jar datoteke
Prebacite se na Upozorenje
Driver.switchTo (). Alert ();
Gornja naredba koristi se za prebacivanje kontrole na nedavno generirani skočni prozor.
Prihvatite upozorenje
alert.accept ();
Gornja naredba prihvaća upozorenje klikom na gumb Ok.
Odbijte upozorenje
alert.dismiss ();
Gornja naredba zatvara upozorenje klikom na gumb Odustani i stoga operacija ne bi trebala biti nastavljena.
Skočni prozori na temelju prozora

Ponekad tijekom automatizacije dobivamo neke scenarije u kojima trebamo obraditi iskačuće prozore generirane u prozorima poput iskačućeg prozora ili prozora pregledavanja tijekom prijenosa datoteke.
Također pročitajte = >> Kako postupati s prijenosom datoteka u selenu
Rukovanje ovim iskačućim prozorima uvijek je bilo pomalo zamršeno, jer znamo da je Selenium alat za testiranje automatizacije koji podržava samo testiranje web aplikacija, što znači da ne podržava programe koji se temelje na sustavu Windows, a upozorenje prozora je jedan od njih. Međutim, sam Selenium ne može pomoći situaciji, ali zajedno s intervencijom treće strane, ovaj se problem može prevladati.
Dostupno je nekoliko alata nezavisnih proizvođača za rukovanje skočnim prozorima temeljenim na prozorima zajedno sa selenom.
pitanja za intervju za .net programere
Dakle, hajmo sada riješiti skočni prozor zasnovan na prozoru pomoću klase Robot.
Klasa robota uslužni je program zasnovan na javi koji oponaša radnje tipkovnice i miša.
Prije nego što krenemo dalje, iskoristimo trenutak da pogledamo aplikaciju koja se testira (AUT).
Objašnjenje prijave koja se ispituje
Kao testnu aplikaciju koristili bismo 'gmail.com'. Vjerujem da aplikacija ne zahtijeva više predstavljanja.
Scenarij koji treba automatizirati
- Pokrenite web preglednik i otvorite aplikaciju - 'gmail.com'
- Unesite važeće korisničko ime i lozinku
- Kliknite gumb za prijavu
- Kliknite gumb za sastavljanje
- Kliknite ikonu za prilaganje
- Odaberite datoteke za prijenos s iskačućim prozorom na temelju prozora.
WebDriver kôd koji koristi klasu robota
Imajte na umu da bismo za izradu skripti koristili projekt 'Learning_Selenium' stvoren u prethodnom vodiču.
Korak 1 : Stvorite novu java klasu nazvanu 'DemoWindowAlert' u okviru projekta 'Learning_Selenium'.
Korak 2 : Kopirajte i zalijepite donji kôd u klasu “DemoWindowAlert.java”.
Ispod je testna skripta koja je ekvivalent gore spomenutom scenariju.
import java.awt.Robot; import 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; javna klasa DemoWindowAlert {upravljački program WebDriver; @Before public void setUp () {driver = novi FirefoxDriver (); driver.get ('https://gmail.com'); driver.manage (). window (). maximize (); } @Test public void testWindowAlert () baca iznimku {// unesite valjanu adresu e-pošte driver.findElement (By.id ('Email')). SendKeys ('TestSelenium1607@gmail.com '); // unesite važeći upravljački program za lozinku.findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // kliknite na gumb za prijavu driver.findElement (By.id ('signIn')). click (); Navoj.spavanje (30000); // kliknite na vozač gumba za sastavljanje.findElement (By.xpath ('// div (@ class =' z0 ') // div (sadrži (text (),' COMPOSE '))'))). click (); // kliknite na ikonu priloženih datoteka driver.findElement (By.xpath ('// div (sadrži (@ naredba,' Datoteke ')) // div (sadrži (@ klasu,' aaA '))')). kliknite ( ); // stvaranje instance klase Robot (uslužni program zasnovan na javi) Robot rb = new Robot (); // pritiskanje tipki uz pomoć keyPress i keyRelease događaja rb.keyPress (KeyEvent.VK_D); rb.keyRelease (KeyEvent.VK_D); Konac.spavanje (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); Konac.spavanje (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); Konac.spavanje (2000.); rb.keyPress (KeyEvent.VK_ENTER); rb.keyRelease (KeyEvent.VK_ENTER); Konac.spavanje (2000.); } @Nakon javne void tearDown () {driver.quit (); }} Prolaz kroz kod
Izjave o uvozu
import java.awt.Robot - Uvezite ovaj paket prije stvaranja skripte. Paket se odnosi na klasu Robot u javi koja je potrebna za simulaciju događaja tipkovnice i miša.
import java.awt.event.KeyEvent - Paket omogućuje korisniku upotrebu događaja keyPress i keyRelease tipkovnice.
Stvaranje predmeta za klasu Robot
Robot rb = novi Robot ();
Izrađujemo referentnu varijablu za klasu Robot i izrađujemo je u instance.
KeyPress i KeyRelease događaji
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
Metode keyPress i keyRelease simuliraju kako korisnik pritiska i otpušta određenu tipku na tipkovnici.
Zaključak
U ovom uputstvu pokušali smo vas upoznati s klasom upozorenja WebDriver-a koja se koristi za obradu skočnih prozora na webu. Također smo vas informirali o klasi Robot koja se može koristiti za popunjavanje vrijednosti u upozorenju na temelju prozora uz pomoć događaja keyPress i keyRelease.
Sažetak članka:
- Upozorenja su mali okvir koji se pojavljuje na zaslonu kako bi vam dao neke informacije ili vas upozorio na potencijalno štetnu operaciju ili čak može tražiti dozvole za operaciju.
- Popularno postoje dvije vrste upozorenja -
- Iskačući prozori upozorenja zasnovani na sustavu Windows
- Iskačući prozori upozorenja na webu
- Prije stvarnog skriptiranja, moramo uvesti paket kako bismo mogli stvoriti WebDriver skriptu za rukovanje padajućim izbornikom i učiniti klasu Select dostupnom.
- WebDriver nudi korisnicima vrlo učinkovit način za rukovanje ovim iskačućim prozorima pomoću sučelja upozorenja.
- poništi odbacivanje () - The odbaciti() metoda klikne na gumb 'Odustani' čim se pojavi skočni prozor.
- nevažeće prihvatiti () - The prihvatiti() metoda klikne na gumb 'Ok' čim se pojavi skočni prozor.
- Niz getText () - The getText () metoda vraća tekst prikazan na okviru upozorenja.
- void sendKeys (niz stringToSend) - The sendKeys () metoda unosi navedeni obrazac niza u okvir upozorenja.
- Rukovanje skočnim prozorima na temelju prozora oduvijek su bili pomalo nezgodni jer znamo da je Selenium alat za automatizaciju koji podržava samo testiranje web aplikacija, što znači da ne podržava programe koji se temelje na sustavu Windows i upozorenje prozora je jedan od njih.
- Razred robota je uslužni program zasnovan na javi koji oponaša radnje tipkovnice i miša i može se učinkovito koristiti za rukovanje skočnim prozorima zasnovanima na prozoru uz pomoć događaja na tipkovnici.
- Metode keyPress i keyRelease simuliraju kako korisnik pritiska i otpušta određenu tipku na tipkovnici.
Sljedeći vodič # 17 : U nadolazećem uputstvu razgovarali bismo o raznim drugim najčešće korištene naredbe WebDriver . Osvijetlili bismo teme poput rukovanja iznimkama i iframe rukovanja. Također bismo razgovarali o naredbama za dobivanje koje se pružaju u WebDriveru.
Objasnili bismo ove teme s brzim primjerima kako bismo ih čitateljima učinili razumljivima da koriste ove koncepte u svakodnevnom skriptiranju.
Napomena za čitatelje : Do tada, pratite nas i automatizirajte web stranice s internetskim i skočnim prozorima zasnovanima na prozoru pomoću uslužnog programa WebDriver - 'Klasa upozorenja' i Java programa - 'Klasa robota'.
Slobodno objavite svoje upite / komentare o ovom ili bilo kojem drugom prethodnom vodiču u komentarima ispod.
Preporučena literatura
- Vodič za krastavac selenij: Integracija Java Selenium WebDriver krastavaca
- Uvod u Selenium WebDriver - Vodič za selen br. 8
- Implementacija naše prve skripte WebDriver - Vodič br. 10 za Selenium WebDriver
- Cjelokupno postavljanje i instaliranje WebDriver-a s Eclipseom - Vodič za selen br. 9
- Provjerite vidljivost web elemenata pomoću različitih tipova naredbi WebDriver - Vodič za selenij # 14
- Vodič za GeckoDriver Selenium: Kako koristiti GeckoDriver u projektima Selenium
- Integracija Jenkinsa s Selenium WebDriver: Vodič korak po korak
- Učinkoviti scenariji za skriptiranje i rješavanje problema sa selenijem - Vodič za selenij br. 27