top 25 selenium webdriver commands that you should know
Vrhunske naredbe selena WebDriver - fenomenalni vodič za automatizacijske testere
Selenium WebDriver jedan je od najpopularnijih alata za automatizaciju web stranica otvorenog koda. Većina mojih kolega ispitivača automatizacije preferira kombinaciju WebDrivera i Jave.
U ovom uputstvu raspravit ću o 25 rutinski korištenih naredbi Selenium WebDriver zajedno sa njihovom sintaksom i jednostavnim primjerima za vaše lako razumijevanje.
Što ćete naučiti:
- Vrste naredbi u WebDriveru
- Top 7 naredbi selena s detaljima
- Popis 25 popularnijih naredbi i primjera WebDrivera
- # 1) get ()
- # 2) getCurrentUrl ()
- # 3) findElement (By, by) i kliknite ()
- # 4) isEnabled ()
- # 5) findElement (By, by) with sendKeys ()
- # 6) findElement (By, by) s getText ()
- # 7) Pošalji ()
- # 8) findElements (Autor, autor)
- # 9) findElements (By, by) s veličinom ()
- # 10) pageLoadTimeout (vrijeme, jedinica)
- # 11) implicitnoČekaj ()
- # 12) dok () i visibilityOfElementLocated ()
- # 13) untill () i alertIsPresent ()
- # 14) getTitle ()
- # 15) Odaberite
- # 16) navigate ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- #19) dragAndDrop()
- # 20) switchTo () i accept (), dismiss () and sendKeys ()
- # 21) getWindowHandle () i getWindowHandles ()
- # 22) getConnection ()
- # 23) ONDA
- # 24) assertEquals (), assertNotEquals (), assertTrue () i assertFalse ()
- # 25) zatvori () i zatvori ()
- Zaključak
- Preporučena literatura
Vrste naredbi u WebDriveru
U posljednji tutorial o selenu , razgovarali smo o različite vrste upozorenja s kojima se susreću tijekom testiranja web aplikacija i njihovih učinkovitih načina rukovanja. Opširno smo raspravljali o vrstama upozorenja, tj. O 'upozorenjima na webu' i 'upozorenjima na temelju prozora'. Također smo vas upoznali s još jednim uslužnim programom zasnovanom na Javi pod nazivom 'Robot Class' za rukovanje skočnim prozorima temeljenim na sustavu Windows.
Napredujući u ovu seriju vodiča za Selenium WebDriver , pritiskali bismo razne uobičajene i rutinski korištene naredbe Selenium WebDriver . Precizno ćemo i ukratko razgovarati o svakoj od ovih naredbi Selenium kako bismo vam omogućili učinkovitu upotrebu ovih naredbi kad god se pojavi situacija.
Svaka radna datoteka za automatizaciju Java započinje stvaranjem reference web preglednika koji želimo koristiti kako je spomenuto u donjoj sintaksi.
Postoji nekoliko metoda dostupnih putem sučelja Webdriver. Ovim se metodama pristupa pomoću varijable instance vozač u jednostavnom formatu driver.methodName (); . Svi ovi projekti automatizacije uključuju pozivanje ovih metoda te usporedbu i procjenu onoga što zapravo vraćaju.
Jednostavno rečeno, naredbe Webdriver možemo općenito klasificirati kao:
- Naredbe preglednika,
- Dobijte naredbe,
- Navigacijske naredbe,
- Naredbe Webelement,
- Akcije naredbe i
- Naredbe rezultata.
Iz konteksta ručnog testiranja, rezultat testa, bilo PASS ili FAIL, odlučuje se naredbama Result koji obično uspoređuju očekivane i stvarne rezultate, a ostalo su koraci Testcasea.
Top 7 naredbi selena s detaljima
Samo da bismo imali grubu ideju, razgovarali bismo o sljedećim naredbama Selenium WebDriver i njihovim različitim verzijama:
- dobiti() metode
- Pronalaženje veza putem linkText () i djelomičniTekst veze ()
- Odabir više stavki u padajućem padajućem izborniku
- Predaja obrasca
- Rukovanje iframovima
- Zatvoriti() i prestati() metode
- Rukovanje iznimkama
# 1) get () metode
Naredba WebDriver | Upotreba |
---|---|
getAttribute () | • Naredba se koristi za dohvaćanje vrijednosti navedenog atributa • Naredba zahtijeva jedan parametar niza koji se odnosi na atribut čiju vrijednost težimo znati i kao rezultat vraća vrijednost niza. driver.findElement (By.id ('findID')). getAttribute ('vrijednost'); |
dobiti() | • Naredba pokreće novi preglednik i otvara se navedeni URL u instanci preglednika • Naredba uzima jedan parametar tipa string koji je obično URL aplikacije koja se testira • Korisnicima Selenium IDE naredba može izgledati vrlo poput naredbe open driver.get ('https://google.com'); |
getClass () | Naredba se koristi za dohvaćanje objekta Class koja predstavlja klasu izvođenja ovog objekta driver.getClass (); |
getCurrentUrl () | • Naredba se koristi za pronalaženje URL-a web stranice kojoj korisnik trenutno pristupa • Naredba ne zahtijeva nijedan parametar i vraća vrijednost niza driver.getCurrentUrl (); |
getPageSource () | • Naredba se koristi za dohvaćanje izvora stranice web stranice kojoj korisnik trenutno pristupa • Naredba ne zahtijeva nijedan parametar i vraća vrijednost niza • Naredba se može koristiti s raznim operacijama niza kao što je contains () za utvrđivanje prisutnost navedene vrijednosti niza boolean rezultat = driver.getPageSource (). contains ('String to find'); |
getTitle () | • Naredba se koristi za pronalazak naslova web stranice na kojoj korisnik trenutno radi. Vraća se nulti niz ako web stranica nema naslov • Naredba ne zahtijeva nijedan parametar i vraća obrezanu vrijednost niza Naslov niza = driver.getTitle (); |
getText () | • Naredba se koristi za dohvaćanje unutarnjeg teksta navedenog web elementa • Naredba ne zahtijeva nijedan parametar i vraća vrijednost niza • To je također jedna od često korištenih naredbi za provjeru prikazanih poruka, oznaka, pogrešaka itd na web stranicama. Tekst niza = driver.findElement (By.id ('Tekst')). GetText (); |
getWindowHandle () | • Naredba se koristi za rješavanje situacije kada imamo više od jednog prozora za rješavanje. • Naredba nam pomaže da se prebacimo na novootvoreni prozor i izvršava radnje na novom prozoru. Korisnik se također može vratiti na prethodni prozor ako to želi. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). window (winHandleBefore); |
getWindowHandles () | • Naredba je slična naredbi 'getWindowHandle ()' s suptilnom razlikom da pomaže u rješavanju više prozora, tj. Kada moramo raditi s više od 2 prozora. |
Isječak koda za “getWindowHandles ()” dan je u nastavku:
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) Pronalaženje veza putem linkText () i djelomičnogLinkText ()
Dopustite nam da pristupimo 'google.com' i 'abodeqa.com' pomoću linkText () i djelomičniLinText () metode WebDrivera.
Gore navedenim poveznicama može se pristupiti pomoću sljedećih naredbi:
vozač .findElement (By.linkText ( 'Google' )).klik();
vozač .findElement (By.linkText ( AbodeQA )).klik();
Naredba pronalazi element pomoću teksta veze, a zatim kliknite na taj element i tako će korisnik biti preusmjeren na odgovarajuću stranicu.
Gore navedenim vezama također se može pristupiti pomoću sljedećih naredbi:
vozač .findElement (By.partialLinkText ( 'Goo' )).klik();
vozač .findElement (By.partialLinkText ( 'prebivalište' )).klik();
Gornje dvije naredbe pronalaze elemente na temelju podniza veze koja je navedena u zagradama, a time i partLinkText () pronalazi web element s navedenim podnizom, a zatim ga klikne.
# 3) Odabir više stavki u padajućem padajućem izborniku
Postoje prvenstveno dvije vrste padajućih padajućih:
- Padajući izbornik za jedan odabir : Padajući izbornik koji istovremeno omogućuje odabir samo jedne vrijednosti.
- Višestruki odabir padajućeg izbornika : Padajući izbornik koji omogućuje istodobno odabir više vrijednosti.
Razmotrite HTML kôd u nastavku za padajući izbornik koji istovremeno može odabrati više vrijednosti.
Red Green Yellow Grey
Isječak koda u nastavku prikazuje višestruke odabire u padajućem izborniku.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Slanje obrasca
Većina ili gotovo sve web stranice imaju obrasce koje treba ispuniti i poslati tijekom testiranja web aplikacije. Korisnik može naići na nekoliko vrsta obrazaca poput obrasca za prijavu, obrasca za registraciju, obrasca za prijenos datoteka, obrasca za izradu profila itd.
U WebDriveru korisnik koristi metodu koja je posebno kreirana za slanje obrasca. Korisnik također može koristiti metodu klika za klik na gumb za prijavu kao zamjenu za gumb za slanje.
Pogledajte isječak koda u nastavku u odnosu na gornji obrazac 'novi korisnik':
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
Dakle, čim programska kontrola pronađe metodu slanja, ona locira element i pokreće podnijeti() metoda na pronađenom web elementu.
# 5) Rukovanje iframovima
Tijekom automatizacije web aplikacija, mogu se dogoditi situacije u kojima se od nas zahtijeva rješavanje više okvira u prozoru. Dakle, programer testne skripte mora se zapravo prebacivati između različitih okvira ili iframeova.
Skraćenica umetnutog okvira kao iframe koristi se za umetanje drugog dokumenta u trenutni HTML dokument ili jednostavno web stranicu u drugu web stranicu omogućavanjem gniježđenja.
Razmotrite sljedeći HTML kôd koji ima iframe unutar web stranice:
Software Testing Help - iframe session
Gornji HTML kôd ilustrira prisutnost ugrađenog iframea u drugi iframe. Dakle, da bi mogao pristupiti podređenom iframe-u, korisnik je dužan prvo doći do nadređenog iframe-a. Nakon izvršavanja potrebne radnje, od korisnika se može zatražiti povratak na nadređeni iframe kako bi se bavio drugim elementom web stranice.
Nemoguće je ako korisnik pokuša izravno pristupiti podređenom iframeu, a da prije toga ne pređe na nadređeni iframe.
Odaberite iframe po id
vozač .switchTo (). frame ( ' ID okvira ' );
Pronalaženje iframe-a pomoću tagName
Tijekom lociranja iframea, korisnik bi se mogao suočiti s nekim problemima ako iframe nije dodijeljen sa standardnim svojstvima. Lociranje okvira i prebacivanje na njega postaje složen postupak. Da bi se situacija riješila, korisniku se omogućuje pronalaženje iframea pomoću metode tagName slično načinu na koji pronalazimo bilo koji drugi web element u WebDriveru.
driver.switchTo (). frame (driver.findElements (By.tagName (“iframe”). get (0));
Gornja naredba locira prvi web element s navedenim tagName i prebacuje se na taj iframe. 'Get (0) koristi se za pronalaženje iframea s vrijednošću indeksa.' Dakle, u redovima s našim HTML kodom, gornja sintaksa koda dovela bi do toga da se programska kontrola prebaci na 'ParentFrame'.
Pronalaženje iframe-a pomoću indeksa:
a) okvir (indeks)
driver.switchTo (). frame (0);
b) okvir (naziv okvira)
driver.switchTo (). frame (“naziv okvira”);
c) okvir (element WebElement)
Odaberite Roditeljski prozor
driver.switchTo (). defaultContent ();
Gornja naredba vraća korisnika u izvorni prozor, tj. Iz oba iframe-a.
# 6) metode close () i quit ()
U WebDriveru postoje dvije vrste naredbi za zatvaranje instance web preglednika.
a) zatvori () : Metoda close () WebDrivera zatvara prozor web preglednika na kojem korisnik trenutno radi ili možemo reći i prozor kojem trenutno pristupa WebDriver. Naredba niti zahtijeva bilo koji parametar niti vraća bilo kakvu vrijednost.
b) prestati () : Za razliku od metode close (), quit () metoda zatvara sve prozore koje je program otvorio. Jednako kao metoda close (), naredba niti zahtijeva bilo koji parametar niti vraća bilo kakvu vrijednost.
Pogledajte dolje navedene isječke koda:
vozač .Zatvoriti(); // zatvara samo jedan prozor kojem trenutno pristupa instanca WebDriver
vozač .prestati(); // zatvara sve prozore koje je otvorila instanca WebDriver
# 7) Rukovanje iznimkama
Iznimke su uvjeti ili situacije koji neočekivano zaustavljaju izvršavanje programa.
Razlozi za takve uvjete mogu biti:
- Pogreške koje je uveo korisnik
- Pogreške koje je generirao programer
- Pogreške generirane fizičkim resursima
Stoga je za rješavanje ovih neočekivanih uvjeta konceptualizirano postupanje s iznimkama.
Što se tiče Java koda koji implementiramo dok automatiziramo web aplikaciju, možemo biti zatvoreni u blok koji je sposoban pružiti mehanizam za rukovanje pogrešnim uvjetima.
Uhvatiti iznimku
Da bismo uhvatili iznimku, koristimo donji blok koda
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Ako se u bloku proba / zaštićenom bloku dogodi bilo kakva iznimka, tada izvršenje kontrolira blok hvatanja za odgovarajuću vrstu iznimke i prosljeđuje joj iznimku bez prekida izvršavanja programa.
Više blokova ulova
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
U gornjem kodu, iznimka će vjerojatno biti uhvaćena u prvom bloku ulova ako se vrsta iznimke podudara. Ako se vrsta iznimke ne podudara, tada se iznimka prebacuje na drugi blok ulova i treći ulov i tako dalje dok se ne posjete svi blokovi ulova.
Uvjeti WebDrivera i rukovanje iznimkama
Kada težimo provjeri prisutnosti bilo kojeg elementa na web stranici pomoću različitih uvjetnih naredbi WebDrivera, WebDriver pretpostavlja da je web element prisutan na web stranici. Ako web element nije prisutan na web stranici, uvjetne naredbe bacaju 'NoSuchElementPresentException'. Stoga, da bismo izbjegli da izuzeci zaustave izvršavanje programa, koristimo mehanizme za rukovanje iznimkama. Pogledajte isječak koda u nastavku:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Popis 25 popularnijih naredbi i primjera WebDrivera
Dolje je dan popis najboljih 25 rutinski korištenih naredbi Webdriver koje svaki ispitivač automatizacije mora znati.
Detaljno ćemo proći kroz ove naredbe.
Daljnje čitanje => Vodič za selenium WebDriver
# 1) get ()
Naredba pomoću get () za otvaranje URL-a u trenutnom pregledniku.
Naredba u nastavku otvorit će navedeni URL, 'https://www.softwaretestinghelp.com' u pregledniku.
Sintaksa:
driver.get('https://www.softwaretestinghelp.com');
Obrazloženje:
- Dođite do URL-a https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Naredba pomoću getCurrentUrl () za provjeru je li URL točan.
Naredba u nastavku dobiva trenutni URL u formatu niza.
Sintaksa:
to je pomoć i pitanja za intervjue
driver.getCurrentUrl();
Ovu metodu obično koristimo u naredbama kako bismo provjerili jesmo li krenuli na pravu stranicu kako se očekuje. Za to moramo koristiti Assert kako je prikazano u nastavku Primjer .
Sintaksa:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Gdje se očekujeUrl je URL koji se očekuje u formatu niza.
Obrazloženje:
- Provjerite i provjerite ostaje li učitani URL isti i je li učitana ispravna stranica.
# 3) findElement (By, by) i kliknite ()
findElement (By, by) i kliknite () da biste kliknuli bilo koji element web stranice.
Metoda findElement (By, by) pretražuje i smješta prvi element na trenutnoj stranici, koji odgovara kriterijima danim kao parametar. Ova se metoda obično koristi u naredbama za simuliranje korisničkih radnji poput klika, slanja, unosa itd.
Naredba u nastavku pretražuje i pronalazi prvi element na web stranici s id-om 'submit1' i klikće na njega ako nije pokriven.
Sintaksa:
driver.findElement(By.id('submit1')).click();
Element se može locirati pomoću iskaznica , Ime , Razred Ime , Naziv oznake , Tekst veze & Tekst djelomične veze , CSS Selector i X put .
Obrazloženje:
- Potražite traženi gumb Submit.
- Pritisnite gumb.
Naredba u nastavku odabire stavku s okvira s popisom.
Sintaksa:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Obrazloženje:
- Potražite i pronađite stavku popisa pod ID-om “name1”.
- Kliknite tu stavku.
# 4) isEnabled ()
isEnabled () za provjeru je li element omogućen ili onemogućen u programu Selenium WebDriver.
Da bismo provjerili je li određeni element omogućen na web stranici, koristimo metodu isEnabled ().
Sintaksa:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Obrazloženje:
- Pronalazi element na web stranici prema xpathu i provjerava je li element omogućen.
# 5) findElement (By, by) with sendKeys ()
findElement (By, by) s sendKeys () za upisivanje u polja obrasca.
Provjere valjanosti obrazaca unesite unoseći različite korisničke unose koji su često potrebni u testiranju automatizacije. Koristimo findElement (By, by) za lociranje polja i sendKeys () za upisivanje nekog sadržaja u polje za uređivanje.
Naredba u nastavku koristi lokator imena kako bi pronašla polje obrasca i u njega upisala 'Aaron'.
Sintaksa:
driver.findElement(By.name('name')).sendkeys('Aaron');
Obrazloženje:
- Potražite obavezno polje imena u obrascu.
- Unesite vrijednost 'Aaron' u nju.
# 6) findElement (By, by) s getText ()
findElement (By, by) s getText () za pohranu vrijednosti ciljanog web elementa.
GetText () je metoda koja vam daje unutarnji tekst web elementa. Preuzmi tekst je tekst unutar HTML oznaka.
Kôd u nastavku pronalazi Element s tagName 'select' i dobiva tekst unutar oznake i sprema ga u padajući padajući izbornik. Sada se String dropDown može koristiti za daljnje radnje unutar programa.
Sintaksa:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Obrazloženje:
- Potražite obavezno polje u obrascu koji ima tagName “dropdown1”.
- Uzmite tekst unutar njegove HTML oznake.
- Pohranite tekst u String objekt 'DropDown'.
# 7) Pošalji ()
Pošaljite () da biste poslali web obrazac.
Način click () o kojem smo gore govorili može se koristiti za klikanje bilo koje veze ili gumba. Submit () je bolja alternativa click () ako je element na koji se klikne gumb za slanje. Gumb za slanje nalazi se unutar HTML oznake 'obrazac', a vrsta gumba je 'Pošalji' (a ne 'gumb').
Submit () olakšava život automatskim pronalaženjem gumba i metode koja se može dodati bilo kojem drugom polju poput imena ili adrese e-pošte. U slučaju klika, moramo upotrijebiti findElement (By, by) metodu i odrediti točne lokatore.
U nekim scenarijima u kojima se radnja vrši preko elemenata koji nisu gumb, submit () djeluje, a klik () neće.
Sintaksa:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Obrazloženje:
- Pronađi element u datoj putanji x s imenom ‘komentari’.
- Pošaljite obrazac.
# 8) findElements (Autor, autor)
findElements (By, by) za dobivanje popisa web elemenata.
Ponekad bismo možda htjeli ispisati ili poduzeti radnju na popisu web elemenata poput veza ili polja za unos na web stranici. U takvom slučaju koristimo findElements (By, by).
Sintaksa:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Obrazloženje:
- Popis svih web elemenata s navedenim xpathom pohranjen je na webelement popisu allChoices.
# 9) findElements (By, by) s veličinom ()
findElements (By, by) s size () da provjeri je li element prisutan.
findElements (By, by) može se koristiti za provjeru je li element stvarno prisutan na web stranici.
Naredba u nastavku koristi se ako želimo provjeriti je li element s određenim lokatorom prisutan na web stranici. Ako je size ()! = 0, element je prisutan.
Sintaksa:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Obrazloženje:
- Element pronalaska naveden je u xpath s id-om 'checkbox2'.
- Prema veličini popisa elemenata, logička provjeraIfElementPresent bit će postavljena na TRUE ili FALSE.
# 10) pageLoadTimeout (vrijeme, jedinica)
pageLoadTimeout (vrijeme, jedinica) za postavljanje vremena učitavanja stranice.
Ponekad zbog problema s poslužiteljem ili mrežnih kašnjenja učitavanje stranice može potrajati više nego obično. To bi moglo dovesti do pogreške u programu. Da bismo to izbjegli, postavljamo vrijeme čekanja i pageLoadTimeout () je jedna od takvih metoda. To će obično slijediti naredbu get ().
Sintaksa:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Obrazloženje:
- Pričekajte 500 sekundi da se stranica učita.
# 11) implicitnoČekaj ()
implicitlyWait () da postavi vrijeme čekanja prije pretraživanja i lociranja web elementa.
Što se događa ako Webdriver pokuša locirati element prije nego što se web stranica učita i element se pojavi? Izbacit će se NoSuchElementExeption. Da bismo to izbjegli, možemo dodati naredbu koja implicitno čeka određeno vrijeme prije lociranja elementa.
Sintaksa:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Obrazloženje:
- Implicitno pričekajte 1000 sekundi prije izvođenja sljedećeg retka u kodu.
# 12) dok () i visibilityOfElementLocated ()
untill () iz WebdriverWait i visibilityOfElementLocated () iz ExpectedConditions da izričito čekaju dok se element ne vidi na web stranici.
Za rješavanje slučajeva kada elementu treba previše vremena da bi bio vidljiv na web stranici softvera primjenom implicitnog čekanja postaje nezgodno. U tom slučaju možemo napisati komentar kako bismo pričekali dok se element ne pojavi na web stranici. Ova naredba koristi kombinaciju metode till () iz klase WebdriverWait i metode visibilityOfElementLocated () iz klase ExpectedConditions.
Sintaksa:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Obrazloženje:
- Prvi redak govori koliko vremena treba pričekati, što je 10 sekundi.
- Drugi uvjet govori o očekivanom stanju za čekanje. Ovdje se radi o elementu s id’name ’u spomenutom xpathu.
# 13) untill () i alertIsPresent ()
untill () iz WebdriverWait i alertIsPresent () iz ExpectedConditions da izričito pričekaju dok se ne pojavi upozorenje.
U nekim scenarijima moramo pričekati upozorenja za nastavak testa. U ovom slučaju koristimo naredbu koja koristi metodu till () iz klase WebdriverWait i metodu alertIsPresent () iz klase ExpectedConditions.
Molimo pogledajte naredbu u nastavku:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Obrazloženje:
- Prvi redak govori koliko vremena treba pričekati - to je 10 sekundi.
- Drugi uvjet govori o očekivanom stanju za čekanje. Ovdje se pojavljuje upozorenje.
# 14) getTitle ()
getTitle () da biste dobili naslov stranice u web pogonitelju Selenium.
Sintaksa:
String title = driver.getTitle(); System.out.println(title);
To se obično koristi za ispis naslova u izlaznim zapisnicima.
Obrazloženje:
- Dohvatite naslov web stranice i spremite ga u naslov String objekta.
- Ispišite vrijednost pohranjenu u naslovu u izlazne zapisnike.
# 15) Odaberite
Odaberite klasu za odabir i poništavanje odabira vrijednosti s padajućeg izbornika u programu Selenium WebDriver.
Često imamo padajuće scenarije. Za to se koriste metode iz klase Select. Prema scenariju možemo koristiti selectByVisibleText (), selectByValue () ili selectByIndex ().
Sintaksa:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Obrazloženje:
- Pronađite padajući izbornik pomoću id-a 'select'.
- S padajućeg izbornika odaberite vidljivi tekst 'Apple'.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Obrazloženje:
- Pronađite padajući izbornik pomoću id-a 'select'.
- S padajućeg izbornika odaberite tekst s vrijednošću 'Apple'.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Obrazloženje:
- Pronađite padajući izbornik pomoću id-a 'select'.
- S padajućeg izbornika odaberite padajuću stavku s vrijednošću indeksa ‘1’ (Druga stavka).
Slično izboru, možemo poništiti odabir vrijednosti s padajućeg izbornika pomoću sličnih naredbi.
Molimo provjerite naredbe:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Obrazloženje:
- Pronađite padajući izbornik pomoću id-a 'select'.
- Poništite odabir vidljivog teksta 'Apple' s padajućeg izbornika.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Obrazloženje:
- Pronađite padajući izbornik pomoću id-a 'select'.
- S padajućeg izbornika poništite odabir teksta s vrijednošću 'Apple'.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Obrazloženje:
- Pronađite padajući izbornik pomoću id-a 'select'.
- Poništite odabir padajuće stavke s vrijednošću indeksa ‘1’ s padajućeg izbornika (Druga stavka).
navigate () za kretanje između URL-ova.
Često vidimo scenarije u kojima bismo se možda trebali pomaknuti s odredišnog URL-a, a zatim se vratiti ili naprijed. U takvim slučajevima, umjesto da koristimo get (), možemo koristiti navigate (). U Navigaciji možemo koristiti metode back () i forward () bez navođenja URL-ova.
Sintaksa:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Obrazloženje:
- Idite na https://www.softwaretestinghelp.com
- Navigacija natrag.
- Pomičite se prema naprijed.
# 17) getScreenshotAs ()
getScreenshotAs () za snimanje cijelog snimka zaslona stranice u programu Selenium WebDriver.
Ovaj je često potreban za spremanje vaših radnih podataka ili ponekad za ručnu provjeru rezultata. Naredba u nastavku koristi se za snimku zaslona i spremanje u izlaznu datoteku.
Sintaksa:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Obrazloženje:
- Snimite snimku zaslona i spremite datoteku u objektnu snimku.
- Spremite datoteku u D pogon kao shot1.png.
# 18) moveToElement ()
moveToElement () iz klase Akcije za simulaciju efekta lebdenja miša.
Postoje scenariji u kojima trebamo lebdjeti iznad web elemenata, poput iznad izbornika, da bismo vidjeli podizbornik, veze da bismo vidjeli promjene boja itd. U tim slučajevima koristimo klasu Akcije. Pogledajte donju sintaksu za klasu Action.
Sintaksa:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Obrazloženje
- Pronađite i pronađite web element s div id ‘mainmenu1’.
- Pomaknite pokazivač miša na element.
#19) dragAndDrop()
dragAndDrop () iz klase Action da biste povukli element i spustili ga na drugi element.
U nekim scenarijima možda bismo htjeli povući elemente. Na primjer, povucite sliku na pozornicu. U ovom slučaju možemo koristiti klasu Akcije.
U metodi dragAndDrop prosljeđujemo dva parametra, Source locator - element koji želimo povući i Destination locator - element na koji želimo spustiti.
Sintaksa:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Obrazloženje:
- Pronađite i pronađite izvorni web element.
- Pronađite i pronađite odredišni web element.
- Povucite i ispustite izvorni element na odredišni element.
# 20) switchTo () i accept (), dismiss () and sendKeys ()
switchTo () i accept (), dismiss () and sendKeys () metode iz klase Alert za prebacivanje na skočne upozorenja i rukovanje njima.
Da bismo se prebacili na upozorenja, skočne prozore i obrađivali ih, koristimo kombinaciju kombinacije od prebaciti na() i accept (), dismiss () metode iz razreda Alert.
Sintaksa:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Obrazloženje:
- Prebacite se na prozor upozorenja.
- Upišite upozorenje 'This Is Softwaretestinghelp'.
- Prihvatite upozorenje i zatvorite ga.
alert.dismiss () može se koristiti za odbacivanje upozorenja.
# 21) getWindowHandle () i getWindowHandles ()
getWindowHandle () i getWindowHandles () za obradu više prozora u programu Selenium WebDriver.
Pitanja i odgovori na razgovoru za administratora Salesforcea
Mnogo je slučajeva kada web aplikacije imaju mnogo okvira ili prozora.
To su uglavnom oglasi ili skočni prozori s informacijama. Pomoću Windows Handlera možemo se nositi s više prozora. Webdriver pohranjuje jedinstveni ID prozora za svaki prozor. Koristimo ovaj ID za njihovo rukovanje.
Sintaksa:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Gornje naredbe koriste se za dobivanje ID-ova prozora trenutnog prozora, odnosno svih prozora. Molimo pogledajte petlju u nastavku da biste vidjeli kako možemo ići do svakog prozora kroz for petlju.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Obrazloženje:
- Za svaki ID ručice prozora iz driver.getWindowHandles (), prebacite se na taj ID prozora.
# 22) getConnection ()
getConnection () iz DriverManager-a za pokretanje veze s bazom podataka.
Da bismo započeli vezu s bazom podataka, koristimo getConnection iz klase DriverManager.
Sintaksa:
DriverManager.getConnection(URL, 'username', 'password' )
Obrazloženje:
- Povežite se s bazom podataka putem URL-a i vjerodajnica.
# 23) ONDA
POI za čitanje iz excel datoteka.
U testiranju usmjerenom na podatke, ulaze često spremamo u excel datoteku i čitamo ih. Da bismo to učinili u WebDriveru, uvozimo paket POI, a zatim koristimo naredbu u nastavku.
Sintaksa:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Obrazloženje:
- Stvorite datoteku čitača.
- Pročitajte datoteku.
# 24) assertEquals (), assertNotEquals (), assertTrue () i assertFalse ()
Tvrdi pomoću asertEquals (), assertNotEquals (), assertTrue () i assertFalse () za usporedbu rezultata.
Tvrdnje se koriste za usporedbu očekivanih i stvarnih rezultata. Proći ili proći test obično se odlučuje na temelju rezultata tvrdnji. U automatizaciji se koriste različite vrste tvrdnji.
Sintaksa:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Obrazloženje:
- U prvoj naredbi, kad god su očekivane i stvarne vrijednosti iste, tvrdnja prolazi bez iznimke. tj. ako je poruka 'Ovaj tekst', tada tvrdnja prolazi.
- U drugoj naredbi, kad god su očekivane i stvarne vrijednosti iste, tvrdnja ne uspije s iznimkom. tj. ako je poruka 'Ovaj tekst', tada tvrdnja ne uspijeva.
- U trećoj naredbi, ako uvjet prođe, tvrdnja prolazi. tj. ako rezultat<0, then the assertion passes.
- U četvrtoj naredbi, ako uvjet prođe, tvrdnja ne uspije. tj. ako rezultat<0, then the assertion fails.
# 25) zatvori () i zatvori ()
close () i quit () za zatvaranje prozora i instanci upravljačkih programa.
Te se naredbe koriste na kraju svakog programa automatizacije.
Sintaksa:
driver.close() driver.quit()
Obrazloženje:
Prva naredba zatvara trenutni prozor.
Druga naredba zatvara ovu instancu upravljačkog programa, zatvarajući svaki pridruženi prozor koji se otvori.
Zaključak
U ovom smo tutoriju predstavili razne često i pretjerano korištene naredbe WebDrivera. Pokušali smo objasniti naredbe odgovarajućim primjerima i isječcima koda.
Trudio sam se najbolje objasniti najpopularnije naredbe WebDriver koje rutinski koristimo u svakodnevnom radu. Ove će vam naredbe omogućiti lak rad sa Selenijem.
Nadam se da vam je bilo zanimljivo i upućeno.
Jeste li ispitivač automatizacije koji je isprobao bilo koju od gore navedenih naredbi? Ili smo propustili bilo koju naredbu koju koristite s gornjeg popisa?
Sljedeći vodič # 18 : U predstojećem uputstvu razgovarali bismo o Web tablice, okviri i dinamički elementi koji su bitan dio bilo kojeg web projekta. Također ćemo pokriti rukovanje iznimkama važniju temu detaljnije u jednom od predstojećih vodiča za selenij.
Preporučena literatura
- Vodič za krastavac selenij: Integracija Java Selenium WebDriver krastavaca
- Uvod u Selenium WebDriver - Vodič za selen br. 8
- Kako pokrenuti Selenium WebDriver u različitim popularnim preglednicima
- Implementacija naše prve skripte WebDriver - Vodič br. 10 za Selenium WebDriver
- Česta pitanja o selenu
- Kako postupati s upozorenjima / skočnim prozorima u programu Selenium WebDriver - Vodič za selenij br. 16
- Vodič za GeckoDriver Selenium: Kako koristiti GeckoDriver u projektima Selenium
- Implicitno i eksplicitno čekanje u Selenium WebDriver (vrste selenovih čekanja)