geckodriver selenium tutorial
Tutorial GeckoDriver Selenium: Aflați cum să utilizați driverul Gecko (Marionette) în Selenium
Pentru a înțelege ce este GeckoDriver, inițial trebuie să știm despre Gecko și motorul browserului web. Acest tutorial acoperă aproape toate caracteristicile implicate în GeckoDriver, oferindu-vă astfel o imagine de ansamblu completă a acestuia.
Deci, pentru început, spuneți-ne mai întâi ce este Gecko și ce este un motor de browser web?
Ce veți învăța:
- Ce este Gecko?
- Ce este un motor de browser web?
- Ce este GeckoDriver?
- De ce Selenium are nevoie de GeckoDriver?
- Cum se folosește GeckoDriver în Selenium Project?
- GeckoDriver și TestNG
- Pași pentru adăugarea unei căi în variabila de mediu PATH a sistemului
- Probleme fără driverul Gecko
- Informații suplimentare despre GeckoDriver
- Concluzie
- Lectură recomandată
Ce este Gecko?
Gecko este un motor de browser web. Există mai multe aplicații care necesită Gecko. Mai exact, aplicațiile dezvoltate de Mozilla Foundation și Mozilla Corporation. Gecko este, de asemenea, o nevoie pentru multe proiecte software open source. Gecko este scris în C ++ și JavaScript.
Ultimele versiuni sunt scrise și în Rust. Gecko este un motor de browser web gratuit și open source.
Ce este un motor de browser web?
Web Browser Engine nu este altceva decât un program software. Funcția principală a acestui program este colectarea conținutului (cum ar fi HTML, XML, imagini) și formatarea informațiilor (cum ar fi CSS) și afișarea acestui conținut formatat pe ecran. Web Browser Engine este, de asemenea, numit ca Layout Engine sau Rendering Engine.
Aplicațiile precum browserele web, clienții de e-mail, cititoarele de cărți electronice, sistemele de ajutor online etc. necesită afișarea conținutului web. Și pentru a afișa conținutul web, este necesar motorul browserului web și face parte din toate aceste aplicații. Există diferite motoare de browser web pentru fiecare browser web.
Următorul tabel prezintă browserele web și ce motoare de browser web utilizează.
Gecko rulează pe următorul sistem de operare fără emulare:
- Windows
- Mac OS
- Linux
- BSD
- Unix
Nu poate rula pe un sistem de operare Symbian.
Ce este GeckoDriver?
GeckoDriver este un link de conectare la browserul Firefox pentru dvs. scripturi în seleniu . GeckoDriver este un proxy care ajută la comunicarea cu browserele bazate pe Gecko (de exemplu, Firefox), pentru care oferă API HTTP.
De ce Selenium are nevoie de GeckoDriver?
Firefox (versiunea 47 și mai sus) a făcut unele modificări și, din anumite motive de securitate, nu permite niciun driver terț să interacționeze direct cu browserele. Prin urmare, nu putem folosi Selenium2 cu cele mai recente versiuni de Firefox. Deci avem nevoie de Seleniu3.
Selenium3 are Marionette Driver. Selenium3 poate interacționa direct cu browserul Firefox utilizând un proxy, care nu este altceva decât GeckoDriver.
Cum se folosește GeckoDriver în Selenium Project?
- Să ne gândim că aveți cea mai recentă versiune de Selenium WebDriver și browserul Firefox.
- Apoi descărcați GeckoDriver de la Aici . Mai târziu, alegeți versiunea potrivită pentru computer.
- Extrage fisierele din folderul comprimat
- Adăugați referințele libs Selenium3 în proiectul dvs. prin Faceți clic dreapta pe proiect => Build Path => Configure Build Path => Libraries => Add External Jars.
- Selectați Dosar Lib => Faceți clic pe Clt + A => Faceți clic pe Deschidere .
- Dupa tine faceți clic pe Deschidere , veți vedea următoarea fereastră:
- Apoi faceți clic pe OK.
- Acum, să ne scriem codul și să folosim proprietatea sistemului pentru a specifica calea GeckoDriver.
- Adăugați linia de mai jos în cod:
System.setProperty(“webdriver.gecko.driver”,”Path of the GeckoDriver file”).
** ( Cum se copiază adresa fișierului extras. - (Apăsați „Shift” de la tastatură și faceți clic dreapta pe fișier, veți obține o opțiune. Apoi „Copiați adresa fișierului”.))
** ( În această copie lipită, asigurați-vă că există o bară inversă dublă, altfel codul va avea o eroare de sintaxă.)
Să luăm un exemplu
Exemplu
Iată doar un script simplu, în care deschidem pagina web Google într-un browser Firefox și verificăm titlul paginii web.
Cod1:
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); } }
Înțelegerea Codului
# 1) import org.openqa.selenium.WebDriver- Aici importăm toate referințele la interfața WebDriver. Mai târziu, această interfață WebDriver este necesară pentru a crea un nou browser.
# 2) import org.openqa.selenium.firefox.FirefoxDriver- Aici importăm toate referințele la clasa FirefoxDriver.
# 3) setProperty (cheie String, valoare String) - Aici stabilim proprietatea sistemului oferind numele proprietății care se numește cheie și calea acesteia numită valoare.
Cheie -Numele proprietății sistemului, adică webdriver.gecko.driver .
Valoare - Adresa fișierului exe al Gecko Driver.
# 4) Driver WebDriver = nou FirefoxDriver () - În această linie de cod, creăm variabila de referință „driver” a WebDriver și această variabilă de referință este inițiată utilizând clasa FirefoxDriver. Un profil Firefox fără extensii și pluginuri va fi lansat cu instanța Firefox.
# 5) get („URL”) - Folosind această metodă Get putem deschide adresa URL specificată în browser. Această metodă Get se numește utilizând variabila de referință WebDriver, adică driverul. Șirul este trecut la metoda Get, ceea ce înseamnă că adresa URL a aplicației noastre este trecută în această metodă Get.
# 6) manage (). Window (). Maximize () - Folosind această linie de cod maximizăm fereastra browserului. De îndată ce browserul deschide URL-ul specificat, acesta este maximizat folosind această linie.
# 7) getTitle () - Folosind această linie de cod, vom putea găsi titlul paginii web. Această metodă este, de asemenea, numită folosind variabila de referință WebDriver „driver”. Salvăm acest titlu în variabila Șir „appTitle”.
# 8) Comparație - Aici comparăm appTitle (care va trece prin driver.getTitle () metoda) și expTitle (care este „Google”) folosind declarația If. Este doar o simplă afirmație If-else. Când condiția „Dacă” este îndeplinită, imprimăm mesajul „Verificare reușită”, altfel suntem mesajul de tipărire „Verificare eșuată”.
if (appTitle.equals (expTitle)) { System.out.println ('Verification Successful'); } else { System.out.println('Verification Failed'); }
# 9) driver.close () - Această linie de cod închide browserul. Această linie închide doar fereastra curentă.
# 10) System.exit (0) - Această metodă de linie de cod este utilizată pentru a termina rularea mașinii virtuale Java. Deci, este recomandat să închideți toate ferestrele sau fișierele deschise înainte de această linie.
GeckoDriver și TestNG
Nu există prea multe diferențe în cod, dar aici adaug un cod doar pentru referință.
EXEMPLU:
Să trecem la exemplu. Exemplul nostru este să deschidem pagina web Google.com, să obținem titlul și să o imprimăm.
Cod2:
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); } }
Puncte de reținut când scrii codul TestNG:
# 1) Utilizați metoda System.setProperty (tasta String, valoarea String) în interiorul funcției f () la fel ca în exemplul anterior. În acest exemplu, l-am scris în funcția principală. Cu toate acestea, în TestNG, nu există funcții main (). Dacă îl scrieți în afara funcției, veți primi o eroare de sintaxă.
#Două) Al doilea lucru cel mai important de reținut este System.exit (0). Nu este nevoie să adăugați această linie de cod în scriptul TestNG. Există un motiv pentru acest lucru: după ce rulați scriptul TestNG, este generat folderul de ieșire unde puteți vizualiza rapoartele generate și rezultatul, dacă adăugați System.exit (0) în scriptul dvs. acest folder (folderul de ieșire) nu va primi generat și nu veți putea vizualiza rapoartele.
Pași pentru adăugarea unei căi în variabila de mediu PATH a sistemului
- În sistemul Windows, faceți clic dreapta pe Computerul meu sau pe acest computer.
- Selectați Proprietăți.
- Selectați setările avansate ale sistemului.
- Faceți clic pe butonul Variabile de mediu.
- Din Variabile de sistem selectați PATH.
- Faceți clic pe butonul Editare.
- Faceți clic pe butonul Nou
- Lipiți calea fișierului GeckoDriver.
- Faceți clic pe OK.
Probleme fără driverul Gecko
S-ar putea să vă confruntați cu unele probleme precum cele prezentate mai jos.
# 1) Dacă utilizați o versiune veche de Firefox și Selenium3, veți obține următoarea excepție:
c ++ inițializează variabila statică
Excepție în firul „principal” java.lang.IllegalStateException
#Două) Dacă utilizați cea mai recentă versiune de Firefox și o versiune veche de Selenium, atunci veți obține următoarea excepție:
org.openqa.selenium.firefox.NotConnectedException : Nu se poate conecta la gazda 127.0.0.1 pe portul 7055 după 45000ms
# 3) Dacă utilizați cea mai recentă versiune de Firefox și WebDriver, dar nu utilizați GeckoDriver, veți primi următoarea excepție:
Excepție în firul „principal” java.lang.IllegalStateException: Calea către executabilul driverului trebuie setată de proprietatea sistemului webdriver.gecko.driver; pentru mai multe informații, consultați Aici .Cea mai recentă versiune poate fi descărcată de la Aici .
Informații suplimentare despre GeckoDriver
După cum știm, GeckoDriver este un proxy care ajută la comunicarea cu browserele bazate pe Gecko (de exemplu, Firefox), pentru care oferă API HTTP.
Acest API HTTP poate fi înțeles folosind protocolul WebDriver. Există câteva noduri în protocolul WebDriver care includ capăt local, capăt la distanță, nod intermediar și nod punct. Comunicarea dintre aceste noduri este descrisă în protocolul WebDriver.
Capătul local este partea client a protocolului WebDriver. Extrem de la distanță înseamnă partea server a protocolului WebDriver. Nodul intermediar îndeplinește rolul unui proxy. Nodul punct final este pus în aplicare de un agent de utilizator sau de un program similar.
Comenzile și răspunsurile trimise de WebDriver către GeckoDriver sunt traduse în protocolul Marionette și apoi transferate către Marionette Driver de către GeckoDriver. Deci, încheiem spunând că GeckoDriver acționează ca un proxy între aceste două WebDriver și Marionette.
Marioneta este împărțită în 2 părți, care este partea server și partea client. Comenzile trimise de partea client sunt executate de partea server.
Această lucrare de executare a comenzilor se efectuează în interiorul browserului. Marionette nu este altceva decât o combinație între o componentă gecko (care este un server Marionette) și o componentă exterioară (care se numește Client Marionette). GeckoDriver este scris în limbajul de programare Rust.
Concluzie
GeckoDriver este un factor intermediar între scripturile dvs. Selenium și browserele bazate pe Gecko, cum ar fi Firefox.
GeckoDriver este un proxy pentru a comunica cu browserele bazate pe Gecko ( De exemplu. Firefox). Firefox (versiunea 47 și mai sus) a făcut unele modificări, ceea ce a condus la prevenirea sprijinirii driverelor terțe pentru a interacționa direct cu browserele.
Acesta este motivul principal pentru care trebuie să folosim GeckoDriver. Cel mai simplu mod de a utiliza GeckoDriver în scriptul dvs. este să implementați utilizarea System.set proprietate. (System.setProperty („webdriver.gecko.driver”, „Calea fișierului Driver Gecko”)).
Sunteți nou la GeckoDriver? Ai învățat ceva nou astăzi în acest GeckoDriver Selenium? Sau aveți ceva interesant de împărtășit cu noi despre GeckoDriver? Simțiți-vă liber să vă exprimați gândurile în secțiunea de comentarii de mai jos.
Lectură recomandată
- Tutorial Castravete Seleniu: Integrare Castravete Java Seleniu WebDriver
- Introducere în Selenium WebDriver - Tutorial Selenium # 8
- Tutorial Selenium Find Element By Text cu exemple
- Implementarea primului nostru script WebDriver - Selenium WebDriver Tutorial # 10
- Cum să gestionați alertele / ferestrele pop-up în Selenium WebDriver - Selenium Tutorial # 16
- WebDriver Întreg instalare și instalare cu Eclipse - Selenium Tutorial # 9
- Tutoriale detaliate pentru eclipsă pentru începători
- Scenarii eficiente cu scripturi și depanare Selenium - Tutorial Selenium # 27