efficient selenium scripting
U prethodnom uputstvu raspravljali smo o tehničkim implikacijama dok provodi prijavu u okvir . Raspravljali smo uslužni program log4j opširno. Razgovarali smo o osnovnim komponentama koje čine log4j iz perspektive upotrebljivosti. Pomoću Dodataka i izgleda korisnik može odabrati željeni format / uzorak zapisivanja i izvor podataka / mjesto.
U trenutnom 27. vodiču u ovom sveobuhvatna besplatna serija treninga o selenu , pomaknuli bismo fokus prema nekoliko trivijalnih a opet važne teme koji bi nas vodio u rješavanju nekih ponavljajućih problema. Možemo ih koristiti ili ne koristiti u svakodnevnom skriptiranju, ali dugoročno bi bile korisne.
Bismo razgovarati o nekim naprednim konceptima u kojima bismo se bavili događajima miša i tipkovnice, pristupajući višestrukim vezama implementiranjem popisa . Pa zašto ne bismo samo započeli i ukratko razgovarali o tim temama uz pomoć odgovarajućih scenarija i isječaka koda.
kako otvoriti torrent datoteke na Windows 10
Što ćete naučiti:
- Izvršitelji JavaScript-a
- Pristup višestrukim elementima na Popisu
- Rukovanje događajima s tipkovnice i miša
- Zaključak
- Preporučena literatura
Izvršitelji JavaScript-a
Iako automatiziraju testni scenarij, postoje određene radnje koje postaju sastavni dio testnih skripti.
Te radnje mogu biti:
- Klik na gumb, hipervezu itd.
- Upis u tekstni okvir
- Pomicanje okomito ili vodoravno dok se željeni objekt ne prikaže
- I mnogo više
Sada je vidljivo iz ranijih vodiča da je najbolji način automatiziranja takvih radnji upotrebom naredbi Selenium.
Ali što ako naredbe selena ne rade?
Da, apsolutno je moguće da vrlo osnovne i elementarne naredbe selena ne rade u određenim situacijama.
To je reklo, da bismo mogli riješiti takvu situaciju, uključimo izvršitelje JavaScript-a.
Što su izvršitelji JavaScript-a?
Sučelje JavascriptExecutor dio je org.openqa.selenium i implementira klasu java.lang.Object. JavascriptExecutor predstavlja mogućnosti izvršavanja JavaScript-a izravno unutar web-preglednika. Da bi se mogao izvršiti JavaScript, u njegovoj su implementaciji predviđeni određeni mehanizmi u obliku metoda zajedno sa određenim skupom parametara.
Metode
executeScript (skripta niza, argumenti)
Kao što naziv metode sugerira, izvršava JavaScript unutar trenutnog prozora, upozorenja, okvira itd. (Prozor na koji je instanca WebDriver trenutno fokusirana)
executeAsyncScript (skripta niza, argumenti)
Kao što naziv metode sugerira, izvršava JavaScript unutar trenutnog prozora, upozorenja, okvira itd. (Prozor na koji je instanca WebDriver trenutno fokusirana)
Parametri i izjava o uvozu zajednički su za obje metode izvršitelja.
Parametri
Skripta - skripta koju treba izvršiti
Argument - parametri koje skripta zahtijeva za svoje izvršavanje (ako postoje)
Izjava o uvozu
Da bismo mogli koristiti JavascriptExecutors u našim testnim skriptama, moramo uvesti paket koristeći sljedeću sintaksu:
import org.openqa.selenium.JavascriptExecutor;
Uzorak koda
# 1) Klik na web element
// Locating the web element using id WebElement element = driver.findElement(By.id('id of the webelement')); // Instantiating JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor)driver; // Clicking the web element js.executeScript('arguments(0).click();', element);
# 2) Upisivanje u tekstni okvir
// Instantiating JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor)driver; // Typing the test data into Textbox js.executeScript('document.getElementById(‘id of the element’).value=’test data’;”);
# 3) Pomicanje prema dolje dok web element ne bude u prikazu
WebElement element=driver.findElement(By.xpath('//input(contains(@value,'Save'))')); // Instantiating the javascriptExecutor and scrolling into the view in the single test step ((JavascriptExecutor)driver).executeScript('arguments(0).scrollIntoView(true);',element);
Možete pronaći razne druge načine pisanja koda za pristup JavascriptExecutors.
Pristup višestrukim elementima na Popisu
Ponekad možemo naići na elemente istog tipa poput višestrukih hiperveza, slika itd. Poredanih u poredani ili neuređeni popis. Stoga je apsolutno logično baviti se takvim elementima jednim dijelom koda, a to se može učiniti pomoću popisa WebElement. Pogledajte snimku zaslona u nastavku da biste razumjeli elemente o kojima govorim.
najbolji optimizator sustava za Windows 10
Na gornjoj slici vidimo da razni pružatelji usluga pripadaju nesređenom popisu. Dakle, provjera klikljivosti i vidljivosti ovih elemenata može se izvršiti jednim dijelom koda pomoću popisa elemenata.
Izjava o uvozu
Da bismo mogli koristiti popis WebElement u našim testnim skriptama, moramo uvesti paket koristeći sljedeću sintaksu:
import java.util.List;
Uzorak koda
// Storing the list List serviceProviderLinks = driver.findElements(By.xpath('//div(@id='ServiceProvider')//ul//li')); // Fetching the size of the list int listSize = serviceProviderLinks.size(); for (int i=0; iPostoje razni zahtjevi prema kojima se popisi mogu koristiti za provjeru elemenata s prikladnim promjenama implementacije.
Rukovanje događajima s tipkovnice i miša
Rukovanje događajima na tipkovnici
Kao što je također ranije rečeno, postoji n brojnih načina rješavanja iste tvrdnje o problemu u različitim kontekstima.
Stoga se ponekad pojavi potreba za rješavanjem problema mijenjanjem konvencionalne strategije bavljenja naprednijom strategijom. Svjedočio sam slučajevima kada nisam mogao rješavati upozorenja i iskakati itd. Pomoću naredbi selena, pa sam se morao odlučiti za različite Java programe za rješavanje problema pomoću poteza tipkovnice i događaja miša.
Klasa robota jedna je od takvih mogućnosti za izvođenje događaja na tipkovnici i miša.
Razumijemo koncept uz pomoć scenarija i njegove provedbe.
Scenarij:
Okupimo situaciju u kojoj se na ekranu pojavi nepotreban iskočni prozor koji se ne može prihvatiti ili odbaciti pomoću sučelja upozorenja, pa nam ostaje jedina mudra opcija zatvoriti prozor pomoću tipki prečaca - „Alt + razmaknica + C“ . Pogledajmo kako zatvaramo skočni prozor pomoću klase robota.
Prije pokretanja implementacije trebali bismo uvesti potreban paket da bismo mogli koristiti klasu Robot unutar naše testne skripte.
Izjava o uvozu
uvoz java.awt.Robot;
Uzorak koda
// Instantiating Robot class Robot rb =new Robot(); // Calling KeyPress event rb.keyPress(KeyEvent.VK_ALT); rb.keyPress(KeyEvent.VK_SPACE); rb.keyPress(KeyEvent.VK_C); // Calling KeyRelease event rb.keyRelease(KeyEvent.VK_C); rb.keyRelease(KeyEvent.VK_SPACE); rb.keyRelease(KeyEvent.VK_ALT);
Klasa robota također se može koristiti za rukovanje događajima miša, ali pogledajmo ovdje mogućnosti selena za rukovanje događajima miša.
Rukovanje događajima s mišem
WebDriver nudi širok raspon uslužnih programa za interakciju koje korisnik može iskoristiti za automatizaciju događaja s mišem i tipkovnicom. Action Interface jedan je od takvih uslužnih programa koji simulira interakciju pojedinih korisnika.
Stoga bismo svjedočili kako Action Interface prelazi mišem na padajući izbornik koji zatim otvara popis opcija u sljedećem scenariju.
Scenarij:
- Pređite mišem na padajućem izborniku
- Kliknite jednu od stavki na popisu opcija
Izjava o uvozu
uvoz org.openqa.selenium.interactions.Actions;
Uzorak koda
kako otvoriti xml datoteke u
// Instantiating Action Interface Actions actions= new Actions(driver); // howering on the dropdown actions.moveToElement(driver.findElement(By. id ('id of the dropdown'))).perform(); // Clicking on one of the items in the list options WebElement subLinkOption=driver.findElement(By.id('id of the sub link')); subLinkOption.click();
Zaključak
U ovom smo tutorijalu raspravljali o nekim naprednim temama povezanim s učinkovitim skriptiranjem i rješavanjem scenarija u kojima korisnik treba rukovati događajima miša i tipkovnice. Također smo razgovarali o tome kako pohraniti više od jednog web elementa na popis. Nadam se da biste uspjeli otkloniti ove prepreke ako naiđu.
Sljedeći vodič # 28 : Za predstojeći tutorial u seriji razgovarali bismo o koncept testiranja baze podataka pomoću Selenium WebDriver . Bili bismo svjedoci mehanizma povezivanja baze podataka, pogađanja selenovih upita i dohvaćanja rezultata putem koda Selenium WebDriver.
Preporučena literatura
- Uvod u Selenium WebDriver - Vodič za selen br. 8
- Otklanjanje pogrešaka u skriptama za selen sa zapisnicima (Vodič za Log4j) - Vodič za selen # 26
- 30+ najboljih vodiča za selen: naučite selen na stvarnim primjerima
- Vodič za krastavac selenij: Integracija Java Selenium WebDriver krastavaca
- Kako locirati elemente u preglednicima Chrome i IE za izgradnju skripti za selen - Vodič za selen br. 7
- 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
- Stvaranje generičkih lijekova i testova - Vodič za selen br. 22