Kas yra „Gecko Driver“?
Terminas „Gecko“ reiškia žiniatinklio naršyklės variklį, kuris yra įmontuotas „Mozilla Firefox“ naršyklėje. „Gecko“ tvarkyklė veikia kaip tarpinis tarp žiniatinklio tvarkyklę turinčių klientų („Eclipse“, „Netbeans“ ir kt.) Ir „Mozilla Firefox“ naršyklės. Trumpai tariant, „Gecko“ tvarkyklė veikia kaip sąsaja tarp „Selenium Web Driver“ testų ir „Mozilla Firefox“ naršyklės.
Prieš „Selenium 3“ numatytoji „Selenium“ naršyklė buvo „Mozilla Firefox“ naršyklė. Po „Selenium 3“ bandytojai turi inicijuoti scenarijų, kad galėtų naudoti „Firefox“, naudodami „GeckoDriver“. „Selenium“ naudoja „W3C Webdriver“ protokolą, norėdamas siųsti užklausas „GeckoDriver“, kuris jas paverčia „Marionette“ vardu pavadintu protokolu. „Firefox“ supras „Marionette“ protokolo pavidalu perduodamas komandas ir jas vykdys.
„Gecko Driver“ naudojimo pranašumas
„Selenium Webdriver 2.53“ versija nesuderinama su „Mozilla Firefox“ 47.0 ir naujesne versija. „Firefox“ tvarkyklė, naudojama ankstesnėse „Mozilla Firefox“ versijose, bus nutraukta ir bus naudojamas tik „GeckoDriver“ diegimas. Todėl bandytojai yra priversti naudoti „GeckoDriver“, jei nori vykdyti automatinius bandymus „Mozilla Firefox“ 47.0 ir naujesnėse versijose. Tačiau didelis klausimas - koks pranašumas?
Pagrindinis „GeckoDriver“ naudojimo, palyginti su numatytuoju „Firefox“ tvarkyklės, privalumas yra suderinamumas . „GeckoDriver“ naudoja W3C „WebDriver“ protokolą, kad galėtų bendrauti su „Selenium“. W3C yra visuotinai apibrėžtas žiniatinklio tvarkyklių standartas. Tai reiškia, kad „Selenium“ kūrėjams (žmonėms, kurie koduoja „Selenium base“) nereikia kurti kiekvienos naršyklės versijos naujos žiniatinklio tvarkyklės versijos. Tą patį žiniatinklio tvarkyklę galima naudoti kelioms naršyklės versijoms. Taigi „GeckoDriver“ teikiama pirmenybė, palyginti su ankstesniu „Firefox“ tvarkyklės diegimu.
Atsisiųskite ir įdiekite „Gecko“ tvarkyklę:
„Gecko Driver“ yra vykdomasis failas, kurį galima atsisiųsti iš sistemos. Toliau pateikiamas „gecko“ tvarkyklės atsisiuntimo veiksmų sąrašas.
1 žingsnis) Šiame puslapyje https://github.com/mozilla/geckodriver/releases, pasirinkite tinkamą „GeckoDriver“ atsisiuntimo versiją pagal savo operacinę sistemą
2 žingsnis) Kai ZIP failas bus baigtas, ištraukite ZIP failo turinį į failų aplanką
3 žingsnis) Atkreipkite dėmesį į vietą, kurioje ištraukėte tvarkyklę. Vieta bus naudojama vėliau, kad vairuotojas būtų greitesnis.
„GeckoDriver“ inicializavimo būdai:
Yra trys skirtingi „GeckoDriver“ inicializavimo būdai.
1. „DesiredCapability“ naudojimas:
Pirmiausia nustatykite „Gecko Driver“ sistemos ypatybę.
Sintaksė:
System.setProperty ("webdriver.gecko.driver", "Kelias į geckdriver.exe failą");
Pavyzdys:
System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");
Tada nustatykite norimas galimybes.
Norimos galimybės padeda „Selenium“ suprasti naršyklės pavadinimą, versiją ir operacinę sistemą automatiniams bandymams atlikti. Žemiau yra kodas, leidžiantis nustatyti geko tvarkyklę naudojant „DesiredCapilities“ klasę.
„DesiredCapability“ galimybės = „DesiredCapability.firefox“);pajėgumai.setCapability („marionetė“, tiesa);
Čia yra visas kodas
System.setProperty ("webdriver.gecko.driver", driverPath);„DesiredCapability“ galimybės = „DesiredCapability.firefox“);pajėgumai.setCapability („marionetė“, tiesa);tvarkyklė = naujas „FirefoxDriver“ (galimybės);
2. Marionette savybės naudojimas:
„Gecko“ vairuotoją taip pat galima inicijuoti naudojant „marionette“ savybę, kaip nurodyta toliau
System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");
Jei Gecko vairuotojas inicializuoti naudojant pirmiau nurodytą metodą, kodas norimų galimybių yra ne reikia.
3. Naudojant „FirefoxOptions“:
„Mozilla Firefox 47+“ versijoje yra „marionette“ tvarkyklė kaip sena sistema. Pasinaudojus tuo, marioneto tvarkyklę galima iškviesti naudojant „Firefox“ parinktis, kaip nurodyta toliau
„FirefoxOptions“ parinktys = naujos „FirefoxOptions“ ();options.setLegacy (true);
„Firefox“ paleidimo naudojant „Gecko“ tvarkyklę kodas:
paketas com.guru99.demo;importuoti org.junit.After;importuoti org.junit.Before;importuoti org.junit.Test;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.firefox.FirefoxDriver;importuoti org.openqa.selenium.remote.DesiredCapabilities;visuomenės klasė „GeckoDriverDemo“String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";viešasis „WebDriver“ tvarkyklė;@Priešpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);„DesiredCapability“ galimybės = „DesiredCapability.firefox“);pajėgumai.setCapability („marionetė“, tiesa);tvarkyklė = naujas „FirefoxDriver“ (galimybės);}@Testpublic void navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Popublic void endTest () {vairuotojas.mesti ();}}
Kodo paaiškinimas:
@ Prieš metodą:
Iš pradžių turime nustatyti „gecko“ tvarkyklės sistemos ypatybę į failo atsisiuntimo vietą geckdriver.exe. Kad „Selenium“ naudotųsi „Marionette“ protokolu, norėdami bendrauti su „Gecko Driver“, turime nustatyti „marionette“ savybę. Galiausiai turime paleisti „Firefox“ naršyklės egzempliorių naudodami norimų galimybių objektą.
Žemiau pateikiami teiginiai padeda pasiekti minėtą užduotį.
System.setProperty ("webdriver.gecko.driver", driverPath);„DesiredCapability“ galimybės = „DesiredCapability.firefox“);pajėgumai.setCapability („marionetė“, tiesa);tvarkyklė = naujas „FirefoxDriver“ (galimybės);
@Bandymo metodas:
Mes einame į vartotojo nurodytą URL naudodami integruotą „gauti“ metodą, kurį teikia „Selenium“ žiniatinklio tvarkyklė. Toliau pateiktas teiginys padeda pasiekti tą patį.
driver.get ("http://demo.guru99.com/selenium/guru99home/");
@ Po metodo:
Galiausiai mes uždarome naršyklės egzempliorių naudodami „quit“ metodą.
vairuotojas.mesti ();
Keisti ne Gecko scenarijų į Gecko:
Ne „Gecko“ tvarkyklės scenarijus, naudojamas prieš „Selenium 3“, buvo paprastas. Turime sukurti „Firefox“ tvarkyklės egzempliorių ir naudoti egzemplioriaus kintamąjį.
@Priešpublic void startBrowser () {tvarkyklė = new FirefoxDriver ();}
Norėdami konvertuoti į gecko, turite tiesiog pridėti vieną kodo eilutę
@Priešpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");tvarkyklė = new FirefoxDriver ();}
Dažniausios išimtys įvyko naudojant „Gecko Driver“:
Toliau pateikiamas sąrašas išimčių, kurios atsiranda naudojant „Gecko Driver“ ir su skiriamąja geba.
1. Tvarkyklės vykdomojo failo kelią turi nustatyti „webdriver.gecko.driver“ sistemos ypatybė:
Ši išimtis įvyksta tada, kai vartotojas bando išaiškinti „Firefox“ tvarkyklę nenustatydamas „gecko“ tvarkyklės sistemos ypatybės. Tai dažniausiai daro pradedantieji „Selenium“, kurie nežino apie „Selenium 3“ ankstesnių versijų pakeitimus.
Minėtos išimties sprendimas yra nustatyti „gecko“ tvarkyklės sistemos ypatybę su geckodriver.exe failo vieta, kaip nurodyta toliau
System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ geckodriver.exe");
Atminkite, kad prieš kurdami „Mozilla Firefox“ tvarkyklės egzempliorių, turite nustatyti „gecko“ tvarkyklės ypatybę.
2. „Firefox“ neprijungta išimtis:
org.openqa.selenium.firefox.NotConnectedException: Nepavyko prisijungti prie pagrindinio 127.0.0.1 7055 prievado po 45000 ms.
Ši išimtis dažniausiai įvyksta, kai „Firefox“ versija yra atnaujinta į naujausią. Šios išimties sprendimas yra atnaujinti selen jar failą ir gecko tvarkyklę į naujausią versiją ir naudoti tą patį.
3. Sesijos nesukurta išimtis:
org.openqa.selenium.SessionNotCreatedException: Nepavyko sukurti naujos nuotolinės sesijos.
Ši išimtis atsiranda dėl „Selenium“ ir „Gecko“ tvarkyklės suderinamumo problemų. „Gecko“ tvarkyklė veikia su „Firefox“ 47 ar naujesne versija. Tai galima išspręsti atnaujinus „Firefox“ versiją į 47 arba naujesnę.
4. Atsisakymo prisijungti išimtis:
„WebDriver“ išimtis: ryšys atmestas
Ši išimtis yra pranešimas, sugeneruotas, kai žiniatinklio tvarkyklė negali užmegzti ryšio su „Firefox“. Tai galima išspręsti naudojant bet kurį iš šių būdų.
- Norėdami sunaikinti ankstesnius žiniatinklio tvarkyklių egzempliorius, naudokite metodą driver.quit ()
- Prieš atlikdami automatinius bandymus, išvalykite naršyklės talpyklą
- Išvalykite projekto darbo sritį „Eclipse IDE“
- Visada naudokite naujausią „selenium gecko“ tvarkyklės versiją ir naujausią „Firefox“ naršyklės versiją