Selenium Python WebDriver-opas (esimerkki)

โšก ร„lykรคs yhteenveto

Selenium Python yhdistรครค WebDriver-automaatiokirjaston Python ytimekรคs syntaksi verkkosovellusten testaamiseen Firefox, Chrome ja Internet Explorer. Tรคmรค ohje mรครคrittรครค PyDev in Eclipse, kirjoittaa kirjautumisskriptejรค ja selittรครค, miksi tiimit suosivat Python yli Java.

  • ๐Ÿ Python Advantage: Less monisanainen syntaksi tekee Selenium skriptejรค on helpompi lukea ja yllรคpitรครค.
  • ๐ŸŒ WebDriver: Lรคhettรครค vakiokomennot kohteeseen Firefox, Chrome ja IE selaimen suunnittelusta riippumatta.
  • ๐Ÿงฉ PyDev Setup: Asenna PyDev laajennus sisรครคn Eclipse ja aseta Python tulkki.
  • ๐Ÿ“ Kirjautumisskriptit: Paikanna kentรคt tunnuksen perusteella, lรคhetรค avaimet ja lรคhetรค lomake automaattisesti.
  • โœ… Otsikkovรคite: WebDriverWait plus assert tarkistaa sivun otsikon sisรครคnkirjautumisen jรคlkeen.
  • ๐Ÿค– AI Assist: Tekoรคlytyรถkalut luovat paikantimia ja Selenium Python skriptit tavallisista kehotteista.

Selenium Python Opastus WebDriverin kanssa

Selenium Python

Selenium tukee Python ja siten sitรค voidaan kรคyttรครค mm Selenium WebDriver kanssa Python kokeiluun.

  • Python on helppo verrattuna muihin ohjelmointikieliin, ja siinรค on paljon vรคhemmรคn monimutkaista syntaksia.
  • Python API:t antavat sinulle mahdollisuuden muodostaa yhteys selaimeen Selenium.
  • Selenium lรคhettรครค standardin Python komentoja eri selaimille, vaikka niiden selainsuunnittelussa olisi eroja.

Voit ajaa Selenium Python kรคsikirjoituksia varten Firefox, Chrome, IE jne. eri kรคyttรถjรคrjestelmissรค.

Mikรค on Python?

Python on korkean tason olio-skriptikieli. Se on suunniteltu kรคyttรคjรคystรคvรคllisellรค tavalla. Python kรคyttรครค yksinkertaisia โ€‹โ€‹englanninkielisiรค avainsanoja, jotka on helppo tulkita. Siinรค on vรคhemmรคn syntaksiongelmia kuin missรครคn muussa ohjelmointikieli.

Katso joitain esimerkkejรค alla olevasta taulukosta.

avainsana Merkitys Kรคyttรถ
elif Muuten jos Muuten jos
muu Muu jos: X; elif: Y; muu: J
paitsi Tee nรคin, jos poikkeus tapahtuu paitsi ValueError, a: tulosta a
Exec Suorita merkkijono nimellรค Python exec 'tulosta "hei maailma!"

Mikรค on Selenium?

Selenium on tyรถkalu verkkosovelluksesi testaamiseen. Voit tehdรค tรคmรคn useilla eri tavoilla, esimerkiksi:

  • Salli sen napauttaa painikkeita.
  • Syรถtรค sisรคltรถรค lomakkeisiin.
  • Selaa sivustoasi ja tarkista, onko kaikki kunnossa ja niin edelleen.

Kuinka asentaa ja mรครคrittรครค PyDev in Eclipse

PyDev on Python kehitysympรคristรถ Eclipse.

Vaihe 1) Mene Eclipse Marketplace. Ohje > Asenna uusi ohjelmisto.

Asenna ja mรครคritรค PyDev in Eclipse

Seuraava vaihe on asentaa โ€pydev IDEโ€ Eclipse.

Vaihe 2) Tรคssรค vaiheessa:

  1. Etsi Tyรถskentele kanssa -kohdasta โ€http://pydev.org/updatesโ€ ja sitten
  2. Valitse kaikki listatut kohteet ja napsauta Seuraava-painiketta kahdesti.
  3. Hyvรคksy kรคyttรถoikeussopimus ja napsauta Valmis.

Asenna ja mรครคritรค PyDev in Eclipse

Vaihe 3) Saatat kohdata turvallisuusvaroituksen. Napsauta "Asenna joka tapauksessa".

Asenna ja mรครคritรค PyDev in Eclipse

Vaihe 4) Aseta asetukset, jotta voit kรคyttรครค Python projektin tarpeiden mukaan. Siirry kohtaan Ikkuna > Asetukset > PyDev > Tulkki > Python Tulkki.

Asenna ja mรครคritรค PyDev in Eclipse

Aseta oletusarvo Python Tulkki, aivan kuten asetit Java kรครคntรคjรค suorittamista varten Java koodi. Voit muuttaa tulkin nimeรค napsauttamalla Selaa python/pypy exe -painiketta.

Asenna ja mรครคritรค PyDev in Eclipse

Vaihe 5) Anna tรคssรค vaiheessa "tulkin nimi" ja "exe"-tiedostopolku Python.

  1. Napsauta "Selaa" ja etsi python.exe, johon asensit Python.
  2. Napsauta OK-painiketta.
  3. Valitse kaikki kansiot ja napsauta OK.
  4. Napsauta "Kรคytรค ja sulje".

Asenna ja mรครคritรค PyDev in Eclipse

Vaihe 6) Luo uusi projekti sisรครคn PythonTรคssรค vaiheessa:

  1. Oikealla painikkeella PyDev Package Explorer > Uusi.
  2. Valitse vaihtoehto muut.

Asenna ja mรครคritรค PyDev in Eclipse

  1. Valitse "PyDev > PyDev Projektiโ€.
  2. Paina Seuraava-painiketta.

Asenna ja mรครคritรค PyDev in Eclipse

  1. Nimeรค projektisi.
  2. Napsauta "Valmis".

Asenna ja mรครคritรค PyDev in Eclipse

Voit nรคhdรค uuden Python (PyDev) -projekti on luotu.

Vaihe 7) Luomisen jรคlkeen 'PyDev Project", luot uuden Python paketti.

  1. Napsauta hiiren kakkospainikkeella kohtaa Projekti > Uusi > PyDev Paketti.
  2. Nimeรค pakettisi ja napsauta Valmis.

Asenna ja mรครคritรค PyDev in Eclipse

Asenna ja mรครคritรค PyDev in Eclipse

Vaihe 8) Jos nรคet alla olevassa kuvakaappauksessa, uusi paketti on luotu.

Asenna ja mรครคritรค PyDev in Eclipse

Luo seuraavaksi PyDev moduuli. Moduuli sisรคltรครค Python alustustiedostot, joiden funktiot voidaan tuoda toiseen moduuliin vรคlttรคen ohjelman uudelleenkirjoittamista.

Vaihe 9) Luoda uusi PyDev moduuli. Napsauta hiiren kakkospainikkeella pakettia > Uusi > PyDev moduuli.

Asenna ja mรครคritรค PyDev in Eclipse

Nimeรค moduuli ja napsauta "Valmis".

Asenna ja mรครคritรค PyDev in Eclipse

Valitse Tyhjรค mallipohja ja napsauta "OK".

Asenna ja mรครคritรค PyDev in Eclipse

Vaihe 10) Kirjoita koodisi Selenium Python kuten alla.

Asenna ja mรครคritรค PyDev in Eclipse

Kuinka luoda testiskriptejรค sisรครคn Selenium Python

Tรคssรค Selenium WebDriver kanssa Python esimerkiksi teimme automatisoinnin "Facebookin kirjautumissivulle" kรคyttรคmรคllรค Firefox kuljettaja.

Selenium Python Esimerkki 1: Kirjaudu Facebookiin

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()

Tilannekuva Code

Luo testiskriptit sisรครคn Selenium   Python

Koodin selitys

  • Code rivi 1: Tuo webdriver selenium-moduulista.
  • Code rivi 2: Tuo selenium-moduulista avaimet.
  • Code rivi 3: user_name on muuttuja, jota kรคytetรครคn kรคyttรคjรคtunnuksen arvon tallentamiseen.
  • Code rivi 4: Muuttujaa โ€passwordโ€ kรคytetรครคn salasanan arvon tallentamiseen.
  • Code rivi 5: Alusta "Firefoxโ€tekemรคllรค siitรค esine.
  • Code rivi 6: โ€Driver.getโ€-metodi navigoi antamalle sivulle. URLWebDriver odottaa, kunnes sivu on latautunut kokonaan, ennen kuin palauttaa hallinnan skriptillesi.
  • Code rivi 7: Etsi tekstikenttรคelementti, johon โ€sรคhkรถpostiosoiteโ€ on kirjoitettava.
  • Code rivi 8: Lรคhetรค arvot sรคhkรถpostiosioon.
  • Code rivi 9: Sama salasanan kanssa.
  • Code rivi 10: Lรคhetรค arvot salasanaosioon.
  • Code rivi 11: element.send_keys(Keys.RETURN) painaa enteriรค arvojen syรถttรคmisen jรคlkeen.
  • Code rivi 12: Sulje.

lรคhtรถ: Kรคyttรคjรคtunnuksen โ€guru99โ€ ja salasanan arvot syรถtetรครคn.

Luo testiskriptit sisรครคn Selenium   Python

Facebook-sivu kirjautuu sisรครคn sรคhkรถpostiosoitteella ja salasanalla. Sivu avautuu (katso kuva alla).

Luo testiskriptit sisรครคn Selenium   Python

Selenium Python Esimerkki 2: Kirjaudu Facebookiin ja tarkista otsikko

Tรคssรค esimerkissรค avaamme kirjautumissivun, tรคytรคmme pakolliset kentรคt โ€kรคyttรคjรคtunnusโ€ ja โ€salasanaโ€ ja tarkistamme sivun otsikon.

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"

Tilannekuva koodista

Luo testiskriptit sisรครคn Selenium   Python

Koodin selitys:

  • Code rivi 1โ€“2: Tuo seleenipakkauksia.
  • Code rivi 4: Alustaa Firefox luomalla objektin.
  • Code rivi 6: Hanki kirjautumissivu (Facebook).
  • Code rivi 8โ€“10: Hae kรคyttรคjรคtunnus, salasanan syรถttรถkentรคt ja lรคhetyspainike.
  • Code rivi 11โ€“12: Syรถtรค tiedot kรคyttรคjรคtunnuksen ja salasanan syรถttรถkenttiin.
  • Code rivi 14: Napsauta Lรคhetรค-painiketta.
  • Code rivi 15: Luo odotusobjekti, jonka aikakatkaisu on 5 sekuntia.
  • Code rivi 16: Ota otsikko โ€selainโ€-objektista.
  • Code rivi 17: Testaa kaapattua otsikkomerkkijonoa hakusanalla โ€Facebookโ€.

Miksi valita Python yli Java in Selenium

Muutamia seikkoja, jotka puoltavat Python yli Java kรคyttรครค Selenium ovat:

  1. Java ohjelmat toimivat yleensรค hitaammin verrattuna Python ohjelmia.
  2. Java kรคyttรครค perinteisiรค tukia lohkojen aloittamiseen ja lopettamiseen, samalla kun Python kรคyttรครค sisennystรค.
  3. Java kรคyttรครค staattista typing, Kun taas Python kirjoitetaan dynaamisesti.
  4. Python on yksinkertaisempi ja kompaktimpi verrattuna Java.

UKK

Suorita pip-asennus komennolla seleeni. Moderni Selenium alusten kanssa Selenium Manager, joka lataa vastaavan selainohjaimen automaattisesti, joten chromedriver-asennusta ei tarvita manuaalisesti.

WebDriver on Selenium kรคyttรถliittymรค, joka ohjaa todellista selainta ja lรคhettรครค komentoja Firefox, Chrome tai Edge hallitaksesi navigointia, klikkauksia ja lomakkeen syรถttรคmistรค.

Selenium 4 poisti find_element_by_id:n. Kรคytรค By-luokkaa: from selenium.webdriver.common.by import By, then driver.find_element(By.ID, โ€œemailโ€).

Implisiittinen odotus kyselyy DOM:ia tietyn ajan. Eksplisiittinen odotus (WebDriverWait) pitรครค tauon, kunnes tietty ehto tรคyttyy. Vรคltรค niiden yhdistรคmistรค ennalta arvaamattoman ajoituksen vรคlttรคmiseksi.

Ei. PyDev in Eclipse on yksi vaihtoehto. Voit myรถs ajaa Selenium Python skriptit PyCharm, VS Codetai komentoriviltรค.

Selenium WebDriver tukee Firefox, Chrome, Edge, Safari ja Internet Explorer. Sama Python skripti suoritetaan niiden yli swap-funktiollaping kuski.

Kyllรค. Tekoรคlyavustajat, kuten ChatGPT, muuttavat selkokielisen testikuvauksen muotoon Selenium Python koodia, ehdota paikantimia ja muunna vanhat find_element_by_id-kutsuja By-syntaksiksi.

Kyllรค. GitHub Copilot ehdottaa pysyviรค paikantimia, selittรครค NoSuchElementException-virheet ja suosittelee eksplisiittisiรค odotusaikoja, mikรค vรคhentรครค epรคtasaisia โ€‹โ€‹testejรค dynaamisilla sivuilla.

Tiivistรค tรคmรค viesti seuraavasti: