efficient selenium scripting
V prejšnji vadnici smo razpravljali o tehničnih posledicah med izvajanjem sečnje v okvir . Razpravljali smo log4j pripomoček na dolgo. Razpravljali smo o osnovnih komponentah, ki tvorijo log4j z vidika uporabnosti. Z dodatki in postavitvami lahko uporabnik izbere želeno obliko / vzorec beleženja in vir / lokacijo podatkov.
V sedanji 27. vadnici v tem obsežna brezplačna spletna serija treningov o selenu , bi se osredotočili na nekaj trivialnih še pomembne teme to bi nas vodilo pri odpravljanju nekaterih ponavljajočih se težav. Lahko jih uporabljamo pri dnevnem skriptiranju ali pa tudi ne, dolgoročno pa bi bili v pomoč.
Mi bi razpravljamo o nekaterih vnaprejšnjih konceptih, v katerih bi se ukvarjali z dogodki miške in tipkovnice, z dostopom do več povezav z uporabo seznamov . Zakaj torej ne začnimo in na kratko razpravljamo o teh temah s pomočjo ustreznih scenarijev in delčkov kode.
najboljši varen pretvornik youtube v mp3
Kaj se boste naučili:
- Izvajalci JavaScript
- Dostop do več elementov na seznamu
- Upravljanje dogodkov na tipkovnici in miški
- Zaključek
- Priporočeno branje
Izvajalci JavaScript
Medtem ko avtomatiziramo testni scenarij, obstajajo določena dejanja, ki postanejo sestavni del testnih skriptov.
Ti ukrepi so lahko:
- Klik na gumb, hiperpovezavo itd.
- Tipkanje v besedilno polje
- Drsenje navpično ali vodoravno, dokler se ne prikaže želeni predmet
- In veliko več
Iz prejšnjih vadnic je razvidno, da je takšen postopek najboljši način za avtomatizacijo z uporabo ukazov Selenium.
Kaj pa, če ukazi selena ne delujejo?
Da, povsem možno je, da zelo osnovni in osnovni ukazi selena v določenih situacijah ne delujejo.
Če želite odpraviti takšno situacijo, v sliko vključimo izvršitelje JavaScript.
Kaj so izvršitelji JavaScript?
Vmesnik JavascriptExecutor je del org.openqa.selenium in izvaja razred java.lang.Object. JavascriptExecutor predstavlja zmožnosti izvajanja JavaScript neposredno v spletnem brskalniku. Da bi lahko izvedel JavaScript, so pri njegovi izvedbi predvideni določeni mehanizmi v obliki metod skupaj z določenim nizom parametrov.
Metode
executeScript (skript niza, argumenti)
Kot že ime metode kaže, zažene JavaScript v trenutnem oknu, opozorilu, okvirju itd. (Okno, na katerega se trenutno osredotoča primerek WebDriver)
executeAsyncScript (skript niza, argumenti)
Kot že ime metode kaže, zažene JavaScript v trenutnem oknu, opozorilu, okvirju itd. (Okno, na katerega se trenutno osredotoča primerek WebDriver)
Parametri in izjava o uvozu so skupni obema izvedbenima metodama.
Parametri
Skripta - skript, ki ga je treba izvesti
Argument - parametri, ki jih skript zahteva za izvajanje (če obstajajo)
Izjava o uvozu
Da bomo lahko v testnih skriptih uporabljali JavascriptExecutors, moramo paket uvoziti z naslednjo sintakso:
import org.openqa.selenium.JavascriptExecutor;
Vzorčna koda
# 1) Klik na spletni 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) Tipkanje v besedilno polje
// Instantiating JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor)driver; // Typing the test data into Textbox js.executeScript('document.getElementById(‘id of the element’).value=’test data’;”);
# 3) Pomikanje navzdol, dokler ni spletni element v pogledu
nove funkcije v javi 8 s primeri
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);
Za dostop do izvršilcev Javascript lahko najdete različne druge načine pisanja kode.
Dostop do več elementov na seznamu
Včasih lahko naletimo na elemente iste vrste, kot so več hiperpovezav, slik itd., Razvrščenih v urejen ali neurejen seznam. Tako je popolnoma smiselno, da se s takimi elementi ukvarjamo z enim samim kodom, kar lahko storimo s pomočjo seznama WebElement. Oglejte si spodnji posnetek zaslona, da boste razumeli elemente, o katerih govorim.
Na zgornji sliki vidimo, da različni ponudniki storitev spadajo na neurejen seznam. Tako je mogoče preveriti klikljivost in vidnost teh elementov z enim samim kodom s pomočjo seznama elementov.
Izjava o uvozu
Da bomo lahko v testnih skriptih uporabili seznam WebElement, moramo paket uvoziti z naslednjo sintakso:
uvoz java.util.List;
Vzorčna 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; iObstajajo različne zahteve, na podlagi katerih je s seznami mogoče preveriti elemente z ustreznimi izvedbenimi spremembami.
Upravljanje dogodkov na tipkovnici in miški
Upravljanje dogodkov na tipkovnici
Kot smo že omenili, obstaja več načinov za reševanje istega problema v različnih kontekstih.
Tako se včasih pojavi potreba po reševanju problema s spreminjanjem običajne strategije trgovanja z bolj napredno strategijo. Priča sem bil primerom, ko se z ukazi selena nisem mogel ukvarjati z opozorili in se pojavljati itd., Zato sem se moral odločiti za različne pripomočke Java, da so se z njimi ukvarjali s premiki tipkovnice in dogodki miške.
Razred robotov je ena takih možnosti za izvajanje dogodkov na tipkovnici in miški.
Razumimo koncept s pomočjo scenarija in njegove izvedbe.
Scenarij:
Zberemo situacijo, ko se na zaslonu pojavi nepotrebno pojavno okno, ki ga ni mogoče sprejeti ali zavrniti z uporabo vmesnika za opozarjanje, zato je edina pametna možnost, da zapremo okno s bližnjicami - 'Alt + preslednica + C' . Poglejmo, kako zapremo pojavno okno z uporabo Robot Class.
Preden začnemo z implementacijo, moramo uvoziti potreben paket, da lahko v našem testnem skriptu uporabljamo razred Robot.
Izjava o uvozu
uvoz java.awt.Robot;
Vzorčna 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);
Razred robotov je mogoče uporabiti tudi za obdelavo dogodkov z miško, vendar si oglejmo tukaj sposobnosti selena za obdelavo dogodkov z miško.
Obravnava dogodkov z miško
WebDriver ponuja široko paleto pripomočkov za interakcijo, ki jih uporabnik lahko izkoristi za avtomatizacijo dogodkov z miško in tipkovnico. Action Interface je ena od takih pripomočkov, ki simulira interakcije z enim uporabnikom.
Tako bi bili priča, kako Action Interface lebdi miško ob spustnem meniju, ki nato odpre seznam možnosti v naslednjem scenariju.
Scenarij:
- Miško premaknite na spustni meni
- Kliknite enega od elementov na seznamu
Izjava o uvozu
uvoz org.openqa.selenium.interactions.Actions;
Vzorčna koda
kako je linux boljši od windows
// 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ček
V tej vadnici smo razpravljali o nekaterih naprednih temah, povezanih z učinkovitim skriptiranjem in odpravljanjem scenarijev, v katerih mora uporabnik obvladovati dogodke miške in tipkovnice. Razpravljali smo tudi o tem, kako shraniti več kot en spletni element na seznam. Upam, da bi te ovire lahko odpravili, če bi naleteli.
Naslednja vadnica št. 28 : Za prihajajočo vadnico v seriji bi razpravljali o koncept testiranja zbirke podatkov z uporabo programa Selenium WebDriver . Bili smo priča mehanizmu povezave z bazo podatkov, pri čemer smo poizvedovali po selenu in pridobivali rezultate prek kode Selenium WebDriver.
Priporočeno branje
- Uvod v Selenium WebDriver - Vadnica za selenij št. 8
- Odpravljanje napak v skriptih selena z dnevniki (Vadnica za Log4j) - Vadnica za selen # 26
- 30+ najboljših vaj za selen: Naučite se selen z resničnimi primeri
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver
- Kako poiskati elemente v brskalnikih Chrome in IE za izdelavo skriptov za selen - Vadnica za selen št. 7
- Implementacija našega prvega skripta WebDriver - Vadnica # 10 za selenium WebDriver
- Celotna namestitev in namestitev WebDriverja z Eclipse - Vadnica za selen št. 9
- Ustvarjanje generičnih izdelkov in testnih kompletov - Vadnica za selen št. 22