Selenium Python Tutorial cu WebDriver (Exemplu)

โšก Rezumat inteligent

Selenium implementate cu Python asociazฤƒ biblioteca de automatizare WebDriver cu Python sintaxฤƒ concisฤƒ pentru testarea aplicaศ›iilor web pe Firefox, Chrome ศ™i Internet Explorer. Aceastฤƒ demonstraศ›ie configureazฤƒ PyDev in Eclipse, scrie scripturi de conectare ศ™i explicฤƒ de ce echipele preferฤƒ Python peste Java.

  • ๐Ÿ Python Avantaj: Less sintaxa detaliatฤƒ face Selenium scripturi mai uศ™or de citit ศ™i de รฎntreศ›inut.
  • ๐ŸŒ WebDriver: Trimite comenzi standard cฤƒtre Firefox, Chrome ศ™i IE, indiferent de designul browserului.
  • ๐Ÿงฉ PyDev รŽnfiinศ›at: instalaลฃi PyDev plugin รฎn Eclipse ศ™i setaศ›i tasta Python interpret.
  • ๐Ÿ“ Scripturi de conectare: Localizaศ›i cรขmpurile dupฤƒ ID, trimiteศ›i cheile ศ™i trimiteศ›i formularul automat.
  • โœ… Declaraศ›ie de titlu: WebDriverWait plus assert verificฤƒ titlul paginii dupฤƒ autentificare.
  • ๐Ÿค– Asistenศ›ฤƒ AI: Instrumentele de inteligenศ›ฤƒ artificialฤƒ genereazฤƒ localizatoare ศ™i Selenium Python scripturi din prompturi simple.

Selenium Python Tutorial cu WebDriver

Selenium implementate cu Python

Selenium sprijinฤƒ Python ศ™i astfel poate fi utilizat ca Selenium WebDriver cu Python pentru testare.

  • Python este uศ™or รฎn comparaศ›ie cu alte limbaje de programare, avรขnd o sintaxฤƒ mult mai puศ›in verbosฤƒ.
  • Python API-urile vฤƒ permit sฤƒ vฤƒ conectaศ›i la browser prin intermediul Selenium.
  • Selenium trimite standardul Python comenzi cฤƒtre diferite browsere, รฎn ciuda variaศ›iilor รฎn designul browserului lor.

Poศ›i alerga Selenium implementate cu Python scripturi pentru Firefox, Chrome, IE etc. pe diferite sisteme de operare.

Ce Este Python?

Python este un limbaj de scripting de nivel รฎnalt orientat pe obiecte. Este proiectat รฎntr-un mod uศ™or de utilizat. Python foloseศ™te cuvinte cheie simple รฎn limba englezฤƒ, uศ™or de interpretat. Are mai puศ›ine complicaศ›ii sintactice decรขt oricare altul limbaj de programare.

Vedeศ›i cรขteva dintre exemplele din tabelul de mai jos.

Cuvรขnt cheie Sens Folosire
Elif Altfel dacฤƒ Altfel dacฤƒ
altfel Altfel dacฤƒ: X; elif: Y; altceva: J
cu excepศ›ia Faceศ›i asta dacฤƒ apare o excepศ›ie cu excepศ›ia ValueError, a: print a
Exec Rulaศ›i ศ™ir ca Python exec โ€žprinteazฤƒ โ€žbunฤƒ lume!โ€

Ce Este Selenium?

Selenium este un instrument pentru testarea aplicaศ›iei web. Puteศ›i face acest lucru รฎn diverse moduri, de exemplu:

  • Permiteศ›i-i sฤƒ apese pe butoane.
  • Introduceศ›i conศ›inut รฎn formulare.
  • Parcurgeศ›i site-ul pentru a verifica dacฤƒ totul este โ€žOKโ€ ศ™i aศ™a mai departe.

Cum se instaleazฤƒ ศ™i se configureazฤƒ PyDev in Eclipse

PyDev este Python mediu de dezvoltare pentru Eclipse.

Pas 1) Acceseazฤƒ Eclipse Marketplace. Ajutor > Instalare software nou.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Urmฤƒtorul pas este instalarea โ€žpydev IDEโ€ pentru Eclipse.

Pas 2) รŽn acest pas:

  1. Cฤƒutaศ›i โ€žhttp://pydev.org/updatesโ€ รฎn Lucru cu, apoi
  2. Selectaศ›i toate elementele listate ศ™i faceศ›i clic de douฤƒ ori pe Urmฤƒtorul.
  3. Acceptaศ›i Acordul de licenศ›ฤƒ ศ™i faceศ›i clic pe Finalizare.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Pas 3) Este posibil sฤƒ aparฤƒ un avertisment de securitate. Faceศ›i clic pe โ€žInstalare oricumโ€.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Pas 4) Setaศ›i preferinศ›ele pentru a putea utiliza Python conform nevoilor proiectului. Accesaศ›i Fereastrฤƒ > Preferinศ›e > PyDev > Interpret > Python Interpret.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Setaศ›i valoarea implicitฤƒ Python Interpret, aศ™a cum aศ›i setat Java compilator pentru rulare Java cod. Pentru a schimba numele interpretorului, faceศ›i clic pe butonul Cฤƒutare dupฤƒ python/pypy exe.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Pas 5) รŽn acest pas, daศ›i โ€žnumele interpretuluiโ€ ศ™i calea fiศ™ierului โ€žexeโ€. Python.

  1. Faceศ›i clic pe โ€žRฤƒsfoiศ›iโ€ ศ™i gฤƒsiศ›i python.exe unde l-aศ›i instalat Python.
  2. Faceศ›i clic pe butonul โ€žOKโ€.
  3. Selectaศ›i toate folderele ศ™i faceศ›i clic pe OK.
  4. Faceศ›i clic pe โ€žAplicaศ›i ศ™i รฎnchideศ›iโ€.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Pas 6) Creaศ›i un proiect nou รฎn PythonรŽn acest pas:

  1. Click dreapta PyDev Explorer de pachete > Nou.
  2. Selectaศ›i opศ›iunea altele.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

  1. Selectaศ›i "PyDev > PyDev Proiect".
  2. Apฤƒsaศ›i butonul โ€žUrmฤƒtorulโ€.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

  1. Denumiศ›i-vฤƒ proiectul.
  2. Faceศ›i clic pe โ€žTerminareโ€.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Puteศ›i vedea noul Python (PyDev) este creat proiectul.

Pas 7) Dupฤƒ crearea 'PyDev Proiect', vei crea un nou Python pachet.

  1. Faceศ›i clic dreapta pe Proiect > Nou > PyDev Pachet.
  2. Denumiศ›i pachetul ศ™i faceศ›i clic pe Finalizare.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Pas 8) Dacฤƒ vedeศ›i รฎn captura de ecran de mai jos, este creat un pachet nou.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Apoi, creaศ›i un PyDev modul. Modulul conศ›ine Python fiศ™iere pentru iniศ›ializare, ale cฤƒror funcศ›ii pot fi importate รฎntr-un alt modul, evitรขnd rescrierea programului.

Pas 9) Creaza un nou PyDev modul. Faceศ›i clic dreapta pe pachet > Nou > PyDev modul.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Denumiศ›i modulul ศ™i faceศ›i clic pe โ€žFinalizareโ€.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Selectaศ›i ศ˜ablon gol ศ™i faceศ›i clic pe โ€žOKโ€.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Pas 10) Scrieศ›i codul pentru Selenium implementate cu Python aศ™a cum se aratฤƒ mai jos.

Instalaศ›i ศ™i configuraศ›i PyDev in Eclipse

Cum se creeazฤƒ scripturi de testare รฎn Selenium implementate cu Python

รŽn acest Selenium WebDriver cu Python De exemplu, am automatizat โ€žpagina de conectare Facebookโ€ folosind Firefox conducฤƒtor auto.

Selenium implementate cu Python Exemplul 1: Conectaศ›i-vฤƒ la Facebook

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
user_name = "YOUR EMAILID"
password = "YOUR PASSWORD"
driver = webdriver.Firefox()
driver.get("https://www.facebook.com")
element = driver.find_element_by_id("email")
element.send_keys(user_name)
element = driver.find_element_by_id("pass")
element.send_keys(password)
element.send_keys(Keys.RETURN)
element.close()

Instantaneu al Code

Creaศ›i scripturi de testare รฎn Selenium implementate cu Python

Explicaศ›ia codului

  • Code linia 1: Din modulul Selenium, importaศ›i fiศ™ierul webdriver.
  • Code linia 2: Din modulul Selenium, importaศ›i Keys.
  • Code linia 3: user_name este o variabilฤƒ utilizatฤƒ pentru a stoca valoarea numelui de utilizator.
  • Code linia 4: Variabila โ€žpasswordโ€ va fi utilizatฤƒ pentru a stoca valoarea parolei.
  • Code linia 5: Iniศ›ializare โ€žFirefoxโ€ fฤƒcรขnd un obiect din ea.
  • Code linia 6: Metoda โ€ždriver.getโ€ navigheazฤƒ la pagina datฤƒ de URLWebDriver aศ™teaptฤƒ pรขnฤƒ cรขnd pagina s-a รฎncฤƒrcat complet รฎnainte de a reda controlul scriptului tฤƒu.
  • Code linia 7: Gฤƒsiศ›i elementul casetei de text unde trebuie scris โ€že-mailulโ€.
  • Code linia 8: Trimiteศ›i valorile la secศ›iunea de e-mail.
  • Code linia 9: La fel ศ™i pentru parolฤƒ.
  • Code linia 10: Trimiteศ›i valori cฤƒtre secศ›iunea de parole.
  • Code linia 11: element.send_keys(Keys.RETURN) apasฤƒ Enter dupฤƒ ce valorile sunt inserate.
  • Code linia 12: Aproape.

ieศ™ire: Se introduc valorile numelui de utilizator โ€žguru99โ€ ศ™i ale parolei.

Creaศ›i scripturi de testare รฎn Selenium implementate cu Python

Pagina de Facebook se va conecta cu adresa de e-mail ศ™i parola. Pagina s-a deschis (vezi imaginea de mai jos).

Creaศ›i scripturi de testare รฎn Selenium implementate cu Python

Selenium implementate cu Python Exemplul 2: Conectaศ›i-vฤƒ la Facebook ศ™i verificaศ›i titlul

รŽn acest exemplu, vom deschide o paginฤƒ de autentificare, vom completa cรขmpurile obligatorii โ€žnume de utilizatorโ€ ศ™i โ€žparolฤƒโ€ ศ™i vom verifica titlul paginii.

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
# Step 1) Open Firefox
browser = webdriver.Firefox()
# Step 2) Navigate to Facebook
browser.get("http://www.facebook.com")
# Step 3) Search & Enter the Email or Phone field & Enter Password
username = browser.find_element_by_id("email")
password = browser.find_element_by_id("pass")
submit   = browser.find_element_by_id("loginbutton")
username.send_keys("YOUR EMAILID")
password.send_keys("YOUR PASSWORD")
# Step 4) Click Login
submit.click()
wait = WebDriverWait( browser, 5 )
page_title = browser.title
assert page_title == "Facebook"

Instantaneu al codului

Creaศ›i scripturi de testare รฎn Selenium implementate cu Python

Explicaศ›ia codului:

  • Code liniile 1-2: Importaศ›i pachete de seleniu.
  • Code linia 4: iniศ›ializa Firefox prin crearea unui obiect.
  • Code linia 6: Obศ›ineศ›i pagina de conectare (Facebook).
  • Code liniile 8-10: Preia numele de utilizator, cรขmpurile de introducere a parolei ศ™i butonul de trimitere.
  • Code liniile 11-12: Introduceศ›i datele รฎn cรขmpurile de introducere a numelui de utilizator ศ™i a parolei.
  • Code linia 14: Faceศ›i clic pe butonul โ€žTrimiteศ›iโ€.
  • Code linia 15: Creaศ›i un obiect de aศ™teptare cu un timeout de 5 secunde.
  • Code linia 16: Captureazฤƒ titlul din obiectul โ€žbrowserโ€.
  • Code linia 17: Testaศ›i ศ™irul de titlu capturat cu โ€žFacebookโ€.

De ce sฤƒ alegi Python peste Java in Selenium

Cรขteva puncte favorabile Python peste Java de folosit cu Selenium sunt:

  1. Java programele tind sฤƒ ruleze mai lent รฎn comparaศ›ie cu Python programe.
  2. Java foloseศ™te acolade tradiศ›ionale pentru a รฎncepe ศ™i a termina blocurile, รฎn timp ce Python foloseศ™te indentarea.
  3. Java foloseศ™te static typing, รŽn timp ce Python este tastat dinamic.
  4. Python este mai simplu ศ™i mai compact รฎn comparaศ›ie cu Java.

รŽntrebฤƒri frecvente

Rulaศ›i pip install selenium. Modern Selenium nave cu Selenium Manager, care descarcฤƒ automat driverul de browser corespunzฤƒtor, deci nu este necesarฤƒ configurarea manualฤƒ a driverului Chrome.

WebDriver este Selenium interfaศ›ฤƒ care controleazฤƒ un browser real, trimiศ›รขnd comenzi cฤƒtre Firefox, Chrome sau Edge pentru a controla navigarea, clicurile ศ™i introducerea formularelor.

Selenium 4 a fost eliminatฤƒ find_element_by_id. Se foloseศ™te clasa By: from selenium.webdriver.common.by import By, then driver.find_element(By.ID, โ€žemailโ€).

Aศ™teptarea implicitฤƒ interogheazฤƒ DOM-ul pentru o anumitฤƒ perioadฤƒ de timp. Aศ™teptarea explicitฤƒ (WebDriverWait) รฎntrerupe operaศ›iunea pรขnฤƒ cรขnd este รฎndeplinitฤƒ o anumitฤƒ condiศ›ie. Evitaศ›i amestecarea acestora pentru a preveni un timp imprevizibil.

Nu. PyDev in Eclipse este o opศ›iune. De asemenea, puteศ›i rula Selenium Python scripturi รฎn PyCharm, VS Code, sau din linia de comandฤƒ.

Selenium WebDriver este compatibil Firefox, Chrome, Edge, Safari ศ™i Internet Explorer. La fel Python scriptul ruleazฤƒ peste ele prin swapping soferul.

Da. Asistenศ›ii inteligenศ›i artificiali precum ChatGPT transformฤƒ o descriere a unui test รฎn limbaj simplu รฎn Selenium Python cod, sugereazฤƒ localizatori ศ™i converteศ™te apelurile vechi find_element_by_id la sintaxa By.

Da. GitHub Copilot sugereazฤƒ localizatori stabili, explicฤƒ erorile NoSuchElementException ศ™i recomandฤƒ aศ™teptฤƒri explicite, reducรขnd testele instabile pe paginile dinamice.

Rezumaศ›i aceastฤƒ postare cu: