geckodriver selenium tutorial
Výukový program GeckoDriver Selenium: Naučte sa používať ovládač Gecko (Marionette) v seléne
Aby sme pochopili, čo je to GeckoDriver, najskôr by sme mali vedieť o Gecko a engine webového prehliadača. Tento výukový program pokrýva takmer všetky funkcie spojené s programom GeckoDriver, čím vám poskytuje úplný prehľad.
Takže na úvod si najskôr uvedomíme, čo je to Gecko a čo je Engine webového prehliadača?
Čo sa dozviete:
- Čo je to Gecko?
- Čo je to modul webového prehliadača?
- Čo je to GeckoDriver?
- Prečo selén potrebuje GeckoDriver?
- Ako používať GeckoDriver v Selenium Project?
- GeckoDriver a TestNG
- Kroky na pridanie cesty do environmentálnej premennej PATH systému
- Problémy bez ovládača Gecko
- Ďalšie informácie o GeckoDriver
- Záver
- Odporúčané čítanie
Čo je to Gecko?
Gecko je nástroj webového prehliadača. Existuje niekoľko aplikácií, ktoré vyžadujú Gecko. Konkrétne ide o aplikácie vyvinuté Mozilla Foundation a Mozilla Corporation. Gecko je tiež potrebou mnohých softvérových projektov s otvoreným zdrojovým kódom. Gecko je napísané v jazykoch C ++ a JavaScript.
Posledné verzie sú tiež napísané v Ruste. Gecko je bezplatný a otvorený zdrojový modul webového prehliadača.
Čo je to modul webového prehliadača?
Engine webového prehliadača nie je nič iné ako softvérový program. Hlavnou funkciou tohto programu je zhromažďovanie obsahu (ako HTML, XML, obrázky) a formátovanie informácií (napríklad CSS) a zobrazovanie tohto formátovaného obsahu na obrazovke. Engine webového prehliadača sa tiež nazýva Layout Engine alebo Rendering Engine.
Aplikácie ako webové prehľadávače, e-mailoví klienti, čítačky elektronických kníh, online systémy pomoci atď. Potrebujú zobrazenie webového obsahu. A na zobrazenie webového obsahu je potrebný motor webového prehliadača, ktorý je súčasťou všetkých týchto aplikácií. Pre každý webový prehliadač existujú rôzne motory webového prehliadača.
Nasledujúca tabuľka zobrazuje webové prehľadávače a informácie o tom, aké motory webových prehľadávačov používajú.
Gecko beží na nasledujúcom operačnom systéme bez emulácie:
- Windows
- Mac OS
- Linux
- BSD
- Unix
Nemôže bežať na operačnom systéme Symbian.
Čo je to GeckoDriver?
GeckoDriver je spojovací odkaz na prehľadávač Firefox pre váš počítač skriptov v seléne . GeckoDriver je proxy, ktorý pomáha komunikovať s prehliadačmi založenými na Gecko (napr. Firefox), pre ktoré poskytuje HTTP API.
Prečo selén potrebuje GeckoDriver?
Prehliadač Firefox (verzia 47 a vyššia) v ňom vykonal určité zmeny a z bezpečnostných dôvodov neumožňuje žiadnemu ovládaču tretej strany priamu interakciu s prehľadávačmi. Z tohto dôvodu nemôžeme Selenium2 používať s najnovšími verziami prehliadača Firefox. Takže potrebujeme selén3.
Selenium3 má ovládač marionet. Selenium3 môže priamo komunikovať s prehliadačom Firefox pomocou servera proxy, čo nie je nič iné ako GeckoDriver.
Ako používať GeckoDriver v Selenium Project?
- Zvážme, že máte najnovšiu verziu servera Selén WebDriver a prehliadač Firefox.
- Potom si stiahnite GeckoDriver z tu . Neskôr vyberte verziu, ktorá je vhodná pre váš počítač.
- Extrahovať súbory z komprimovaného priečinka
- Pridajte do svojho projektu odkazy na dokumenty Selenium3 prostredníctvom Pravým tlačidlom myši kliknite na projekt => Cesta zostavy => Konfigurovať cestu zostavy => Knižnice => Pridať externé nádoby.
- Vyberte Lib folder => Kliknite na Clt + A => kliknite na Open .
- Po vás kliknite otvoriť , uvidíte nasledujúce okno:
- Potom kliknite na tlačidlo OK.
- Teraz napíšme náš kód a pomocou vlastnosti systému určime cestu GeckoDriver.
- Pridajte do svojho kódu nasledujúci riadok:
System.setProperty(“webdriver.gecko.driver”,”Path of the GeckoDriver file”).
** ( Ako skopírovať adresu extrahovaného súboru. - (Na klávesnici stlačte kláves „Shift“ a kliknite pravým tlačidlom myši na súbor, zobrazí sa vám možnosť. Potom „Kopírovať adresu súboru“.))
** ( V tejto vloženej kópii cesty sa uistite, že existuje dvojité spätné lomítko, inak bude mať kód chybu syntaxe.)
Zoberme si príklad
Príklad
Tu je len jednoduchý skript, kde otvoríme webovú stránku Google v prehliadači Firefox a overíme jej názov.
Kód1:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; publicclass First_Class { publicstaticvoid main(String() args) { System.setProperty('webdriver.gecko.driver','E:\GekoDriver\geckodriver-v0.15.0-win64\geckodriver.exe'); WebDriver driver=new FirefoxDriver(); driver.get('https://www.google.com/'); driver.manage().window().maximize(); String appTitle=driver.getTitle(); String expTitle='Google'; if (appTitle.equals (expTitle)){ System.out.println('Verification Successfull'); } else{ System.out.println('Verification Failed'); } driver.close(); System.exit(0); } }
Porozumenie kódexu
# 1) import org.openqa.selenium.WebDriver- Tu importujeme všetky odkazy na rozhranie WebDriver. Neskôr bude toto rozhranie WebDriver potrebné na vytvorenie nového prehliadača.
# 2) importujte org.openqa.selenium.firefox.FirefoxDriver- Tu importujeme všetky odkazy na triedu FirefoxDriver.
# 3) setProperty (kľúč reťazca, hodnota reťazca) - Tu nastavujeme systémovú vlastnosť poskytnutím názvu vlastnosti, ktorá sa nazýva Kľúč, a jej cesty, ktorá sa nazýva Hodnota.
Kľúč -Názov systémového majetku t.j. webdriver.gecko.driver .
Hodnota - Adresa exe súboru ovládača Gecko.
# 4) Ovládač WebDriver = nový FirefoxDriver () - V tomto riadku kódu vytvárame referenčnú premennú „driver“ ovládača WebDriver a táto referenčná premenná sa spúšťa pomocou triedy FirefoxDriver. Profil Firefoxu bez rozšírení a doplnkov sa spustí s inštanciou Firefoxu.
# 5) get („URL“) - Pomocou tejto metódy Get môžeme otvoriť zadanú adresu URL v prehliadači. Táto metóda Get sa volá pomocou referenčnej premennej WebDriveru, tj. Ovládača. Reťazec sa odovzdáva metóde Get, čo znamená, že sa adresa URL našej aplikácie odovzdáva do tejto metódy Get.
# 6) spravovať (). Okno (). Maximalizovať () - Pomocou tohto riadku kódu maximalizujeme okno prehliadača. Hneď ako prehliadač otvorí zadanú adresu URL, maximalizuje sa pomocou tohto riadku.
# 7) getTitle () - Pomocou tohto riadku kódu budeme môcť nájsť názov webovej stránky. Táto metóda sa nazýva aj pomocou referenčnej premennej ovládača WebDriver. Tento nadpis ukladáme do premennej reťazca „appTitle“.
# 8) Porovnanie - Tu porovnávame aplikáciu appTitle (ktorá sa dostane cez driver.getTitle () metóda) a expTitle (čo je „Google“) pomocou príkazu If. Je to len jednoduché vyhlásenie If-else. Keď je splnená podmienka „Ak“, tlačíme správu „Verification Successful“, inak tlačíme správu „Verification Failed“.
if (appTitle.equals (expTitle)) { System.out.println ('Verification Successful'); } else { System.out.println('Verification Failed'); }
# 9) driver.close () - Tento riadok kódu zavrie prehliadač. Tento riadok zatvára iba aktuálne okno.
# 10) System.exit (0) - Tento riadok metódy kódu sa používa na ukončenie bežiaceho Java Virtual Machine. Preto sa pred týmto riadkom odporúča zavrieť všetky otvorené okná alebo súbory.
GeckoDriver a TestNG
V kóde nie je veľký rozdiel, ale tu pridávam kód len pre vašu informáciu.
PRÍKLAD:
Poďme k príkladu. Naším príkladom je otvorenie webovej stránky Google.com, získanie jej názvu a jej vytlačenie.
Kód2:
import org.testng.annotations.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; publicclass TstNG { @Test publicvoid f() { System.setProperty('webdriver.gecko.driver','E:\GekoDriver\geckodriver-v0.15.0-win64\geckodriver.exe'); WebDriver driver=new FirefoxDriver(); driver.get('https://www.google.com/'); driver.manage().window().maximize(); String appurl=driver.getTitle(); System.out.println(appurl); driver.close(); // System.exit(0); } }
Body, ktoré treba pamätať pri písaní kódu TestNG:
# 1) Použite metódu System.setProperty (kľúč String, hodnota reťazca) vo vnútri funkcie f () rovnako ako v predchádzajúcom príklade. V tom príklade sme to napísali v hlavnej funkcii. V TestNG však neexistujú žiadne hlavné () funkcie. Ak ho napíšete mimo funkcie, dostanete syntaktickú chybu.
#dva) Druhou najdôležitejšou vecou, ktorú si treba pamätať, je System.exit (0). Tento riadok kódu nie je potrebné pridávať do skriptu TestNG. Má to jeden dôvod - po spustení skriptu TestNG sa vygeneruje výstupný priečinok, kde môžete zobraziť vygenerované správy a výsledky, ak do svojho skriptu pridáte System.exit (0), tento priečinok (výstupný priečinok) sa nedostane vygenerované a nebudete si môcť prezerať prehľady.
Kroky na pridanie cesty do environmentálnej premennej PATH systému
- V systéme Windows kliknite pravým tlačidlom myši na ikonu Tento počítač alebo Tento počítač.
- Vyberte Vlastnosti.
- Vyberte rozšírené nastavenia systému.
- Kliknite na tlačidlo Premenné prostredia.
- Zo systémových premenných vyberte PATH.
- Kliknite na tlačidlo Upraviť.
- Kliknite na tlačidlo Nové
- Vložte cestu k súboru GeckoDriver.
- Kliknite na tlačidlo OK.
Problémy bez ovládača Gecko
Môžete naraziť na niektoré problémy, ako sú napríklad problémy uvedené nižšie.
# 1) Pokiaľ používate starú verziu Firefoxu a Selenium3, dostanete nasledujúcu výnimku:
usertesting koľko testov za deň
Výnimka vo vlákne „main“ java.lang.IllegalStateException
#dva) Ak používate najnovšiu verziu Firefoxu a starú verziu selénu, dostanete nasledujúcu výnimku:
org.openqa.selenium.firefox.NotConnectedException : Nedá sa pripojiť k hostiteľovi 127.0.0.1 na porte 7055 po 45000ms
# 3) Ak používate najnovšiu verziu prehľadávača Firefox a WebDriver, ale nepoužívate program GeckoDriver, zobrazí sa nasledujúca výnimka:
Výnimka vo vlákne „main“ java.lang.IllegalStateException: Cesta k spustiteľnému súboru ovládača musí byť nastavená v systémovej vlastnosti webdriver.gecko.driver; ďalšie informácie nájdete na tu .Najnovšiu verziu je možné stiahnuť z tu .
Ďalšie informácie o GeckoDriver
Ako vieme, GeckoDriver je proxy, ktorý pomáha komunikovať s prehliadačmi založenými na Gecko (napr. Firefox), pre ktoré poskytuje HTTP API.
Tomuto HTTP API je možné porozumieť pomocou protokolu WebDriver. V protokole WebDriver sú niektoré uzly, ktoré zahŕňajú lokálny koniec, vzdialený koniec, sprostredkujúci uzol a uzol koncového bodu. Komunikácia medzi týmito uzlami je popísaná v protokole WebDriver.
Lokálny koniec je na strane klienta protokolu WebDriver. Vzdialený koniec znamená serverovú stranu protokolu WebDriver. Uzol Sprostredkovateľ plní úlohu proxy. Uzol koncového bodu uvedie do platnosti užívateľský agent alebo podobný program.
Príkazy a odpovede odoslané WebDriverom do GeckoDriveru sa preložia do protokolu Marionette Protocol a potom ich GeckoDriver prenesie do aplikácie Marionette Driver. Na záver teda hovoríme, že GeckoDriver koná ako proxy medzi týmito dvoma servermi WebDriver a Marionette.
Marioneta je rozdelená na 2 časti, a to serverovú časť a klientsku časť. Príkazy, ktoré odosiela klientská časť, vykonáva serverová časť.
Táto práca s vykonaním príkazu sa vykonáva vo vnútri prehliadača. Marionette nie je nič iné ako kombinácia gekónového komponentu (ktorým je marionetový server) a vonkajšieho komponentu (ktorý sa nazýva Marionette Client). GeckoDriver je napísaný v programovacom jazyku Rust.
Záver
GeckoDriver je medzičlánok medzi vašimi selénovými skriptmi a prehliadačmi založenými na Gecko, ako je Firefox.
GeckoDriver je proxy na komunikáciu s prehliadačmi založenými na Gecko ( Napr. Firefox). Firefox (verzia 47 a vyššia) vykonal určité zmeny, ktoré viedli k zabráneniu podpory priamej interakcie ovládačov tretích strán s prehľadávačmi.
Toto je hlavný dôvod, prečo musíme používať GeckoDriver. Najjednoduchší spôsob, ako použiť GeckoDriver vo svojom skripte, je implementovať použitie Vlastnosť System.set. (System.setProperty („webdriver.gecko.driver“, „Cesta k súboru ovládača Gecko“))).
Ste v GeckoDriver nováčikom? Dozvedeli ste sa dnes niečo nové v tomto GeckoDriver Selenium? Alebo sa chcete s nami o niečo zaujímavé podeliť o GeckoDriver? Neváhajte a vyjadrite svoje myšlienky v sekcii komentárov nižšie.
Odporúčané čítanie
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Úvod do softvéru Selenium WebDriver - Výučba selénu č. 8
- Sprievodca hľadaním prvkov selénom podľa výučby s príkladmi
- Implementácia nášho prvého skriptu WebDriver - výučba selénu WebDriver č. 10
- Ako zaobchádzať s upozorneniami alebo vyskakovacími oknami v selenovom webovom ovládači - selénský výukový program č. 16
- Celé nastavenie a inštalácia WebDriver s výučbou Eclipse - Selenium č. 9
- Hĺbkové návody pre zatmenie pre začiatočníkov
- Efektívne skriptovanie selénu a riešenie problémov - scenáre selénu # 27