Selenium Python Veiledning med WebDriver (eksempel)

โšก Smart oppsummering

Selenium med Python kobler WebDriver-automatiseringsbiblioteket med Python konsis syntaks for รฅ teste webapplikasjoner pรฅ tvers Firefox, Chrome og Internet Explorer. Denne gjennomgangen konfigurerer PyDev in Eclipse, skriver innloggingsskript og forklarer hvorfor team foretrekker Python enn Java.

  • ๐Ÿ Python Fordel: Less ordrik syntaks gjรธr Selenium skript som er enklere รฅ lese og vedlikeholde.
  • ๐ŸŒ WebDriver: Sender standardkommandoer til Firefox, Chrome og IE uavhengig av nettleserdesign.
  • ๐Ÿงฉ PyDev Oppsett: Installer PyDev plugin inn Eclipse og sett Python tolk.
  • ๐Ÿ“ Innloggingsskript: Finn felt etter ID, send nรธkler og send inn skjemaet automatisk.
  • โœ… Tittelpรฅstand: WebDriverWait pluss assert bekrefter sidetittelen etter innlogging.
  • ๐Ÿค– AI Assist: AI-verktรธy genererer lokaliseringspunkter og Selenium Python skript fra vanlige ledetekster.

Selenium Python Veiledning med WebDriver

Selenium med Python

Selenium stรธtter Python og kan dermed brukes som Selenium WebDriver med Python for testing.

  • Python er enkelt sammenlignet med andre programmeringssprรฅk, og har langt mindre ordrik syntaks.
  • Ocuco Python APIer gir deg mulighet til รฅ koble til nettleseren gjennom Selenium.
  • Selenium sender standarden Python kommandoer til forskjellige nettlesere, til tross for variasjon i nettleserdesignet deres.

Du kan kjรธre Selenium med Python skript for Firefox, Chrome, IE osv. pรฅ forskjellige operativsystemer.

Hva er Python?

Python er et objektorientert skriptsprรฅk pรฅ hรธyt nivรฅ. Den er utformet pรฅ en brukervennlig mรฅte. Python bruker enkle engelske nรธkkelord som er lette รฅ tolke. Den har fรฆrre syntakskomplikasjoner enn noen annen programmeringssprรฅk.

Se noen av eksemplene i tabellen nedenfor.

sรธkeord Betydning bruk
elif Ellers hvis Ellers hvis
ellers Else hvis: X; elif: Y; annet: J
unntatt Gjรธr dette hvis det oppstรฅr et unntak unntatt ValueError, a: skriv ut en
exec Kjรธr streng som Python exec 'skriv ut "hei verden!"'

Hva er Selenium?

Selenium er et verktรธy for รฅ teste webapplikasjonen din. Du kan gjรธre dette pรฅ forskjellige mรฅter, for eksempel:

  • Tillat den รฅ trykke pรฅ knapper.
  • Skriv inn innhold i skjemaer.
  • Skim nettstedet ditt for รฅ sjekke om alt er "OK" og sรฅ videre.

Hvordan installere og konfigurere PyDev in Eclipse

PyDev er den Python utviklingsmiljรธ for Eclipse.

Trinn 1) Gรฅ til Eclipse Markedsplass. Hjelp > Installer ny programvare.

Installer og konfigurer PyDev in Eclipse

Neste trinn er รฅ installere ยซpydev IDEยป for Eclipse.

Trinn 2) I dette trinnet:

  1. Sรธk etter ยซhttp://pydev.org/updatesยป i Arbeid med, og deretter
  2. Velg alle elementene pรฅ listen og klikk to ganger pรฅ Neste.
  3. Godta lisensavtalen og klikk pรฅ Fullfรธr.

Installer og konfigurer PyDev in Eclipse

Trinn 3) Du kan fรฅ en sikkerhetsadvarsel. Klikk pรฅ ยซInstaller likevelยป.

Installer og konfigurer PyDev in Eclipse

Trinn 4) Angi preferanser slik at du kan bruke Python i henhold til prosjektets behov. Gรฅ til Vindu > Innstillinger > PyDev > Tolk > Python Tolk.

Installer og konfigurer PyDev in Eclipse

Angi standard Python Tolken, akkurat som du setter inn Java kompilator for kjรธring Java kode. For รฅ endre tolkenavnet, klikk pรฅ knappen Bla gjennom etter python/pypy exe.

Installer og konfigurer PyDev in Eclipse

Trinn 5) I dette trinnet, oppgi "tolknavnet" og "exe"-filbanen til Python.

  1. Klikk pรฅ "Bla gjennom" og finn python.exe der du installerte Python.
  2. Klikk pรฅ OK-knappen.
  3. Merk alle mappene og klikk pรฅ OK.
  4. Klikk pรฅ "Bruk og lukk".

Installer og konfigurer PyDev in Eclipse

Trinn 6) Lag et nytt prosjekt i PythonI dette trinnet:

  1. Hรธyreklikk PyDev Pakkeutforsker > Ny.
  2. Velg alternativ andre.

Installer og konfigurer PyDev in Eclipse

  1. Velg "PyDev > PyDev Prosjekt".
  2. Trykk pรฅ ยซNesteยป-knappen.

Installer og konfigurer PyDev in Eclipse

  1. Navngi prosjektet ditt.
  2. Klikk "Fullfรธr".

Installer og konfigurer PyDev in Eclipse

Du kan se det nye Python (PyDev) prosjektet er opprettet.

Trinn 7) Etter รฅ ha opprettet 'PyDev Project', vil du opprette en ny Python pakke.

  1. Hรธyreklikk pรฅ Prosjekt > Ny > PyDev Pakke.
  2. Gi pakken et navn og klikk pรฅ Fullfรธr.

Installer og konfigurer PyDev in Eclipse

Installer og konfigurer PyDev in Eclipse

Trinn 8) Hvis du ser det pรฅ skjermbildet nedenfor, er en ny pakke opprettet.

Installer og konfigurer PyDev in Eclipse

Deretter oppretter du en PyDev modul. Modulen inneholder Python filer for initialisering, hvis funksjoner kan importeres til en annen modul, slik at man unngรฅr รฅ skrive programmet pรฅ nytt.

Trinn 9) Lage en ny PyDev modul. Hรธyreklikk pรฅ pakke > Ny > PyDev modul.

Installer og konfigurer PyDev in Eclipse

Gi modulen et navn og klikk pรฅ ยซFullfรธrยป.

Installer og konfigurer PyDev in Eclipse

Velg Tom mal og klikk pรฅ ยซOKยป.

Installer og konfigurer PyDev in Eclipse

Trinn 10) Skriv koden din for Selenium med Python som vist nedenfor.

Installer og konfigurer PyDev in Eclipse

Hvordan lage testskript i Selenium med Python

I dette Selenium WebDriver med Python For eksempel automatiserte vi ยซFacebook-innloggingssidenยป ved hjelp av Firefox sjรฅfรธr.

Selenium med Python Eksempel 1: Logg inn pรฅ 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()

ร˜yeblikksbilde av Code

Lag testskript i Selenium med Python

Forklaring av koden

  • Code linje 1: Importer webdriver fra seleniummodulen.
  • Code linje 2: Importer nรธkler fra selenmodulen.
  • Code linje 3: brukernavn er en variabel som brukes til รฅ lagre verdien til brukernavnet.
  • Code linje 4: Variabelen ยซpassordยป vil bli brukt til รฅ lagre verdien av passordet.
  • Code linje 5: InitialiserFirefoxโ€ ved รฅ lage et objekt av det.
  • Code linje 6: Metoden ยซdriver.getยป navigerer til siden gitt av URLWebDriver venter til siden er fullstendig lastet inn fรธr den gir kontroll tilbake til skriptet ditt.
  • Code linje 7: Finn tekstbokselementet der ยซe-postenยป skal skrives.
  • Code linje 8: Send verdiene til e-postseksjonen.
  • Code linje 9: Det samme gjelder passordet.
  • Code linje 10: Send verdier til passorddelen.
  • Code linje 11: element.send_keys(Keys.RETURN) trykker enter etter at verdiene er satt inn.
  • Code linje 12: Lukk.

Utgang: Verdiene for brukernavnet ยซguru99ยป og passordet skrives inn.

Lag testskript i Selenium med Python

Facebook-siden logger inn med e-postadresse og passord. Siden รฅpnes (se bildet nedenfor).

Lag testskript i Selenium med Python

Selenium med Python Eksempel 2: Logg inn pรฅ Facebook og sjekk tittelen

I dette eksemplet รฅpner vi en innloggingsside, fyller ut de obligatoriske feltene ยซbrukernavnยป og ยซpassordยป og sjekker sidetittelen.

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"

ร˜yeblikksbilde av koden

Lag testskript i Selenium med Python

Forklaring av koden:

  • Code linje 1โ€“2: Importer selenpakker.
  • Code linje 4: initial~~POS=TRUNC Firefox ved รฅ opprette et objekt.
  • Code linje 6: Skaff deg innloggingssiden (Facebook).
  • Code linje 8โ€“10: Hent brukernavn, passordinntastingsbokser og send-knappen.
  • Code linje 11โ€“12: Skriv inn data i inndataboksene for brukernavn og passord.
  • Code linje 14: Klikk pรฅ "Send" -knappen.
  • Code linje 15: Opprett et venteobjekt med en tidsavbrudd pรฅ 5 sekunder.
  • Code linje 16: Hent tittelen fra ยซnettleserยป-objektet.
  • Code linje 17: Test den innfangede tittelstrengen med ยซFacebookยป.

Hvorfor velge Python enn Java in Selenium

Noen fรฅ punkter som favoriserer Python enn Java รฅ bruke med Selenium er:

  1. Java programmer har en tendens til รฅ kjรธre tregere sammenlignet med Python programmer.
  2. Java bruker tradisjonelle avstivere for รฅ starte og avslutte blokker, mens Python bruker innrykk.
  3. Java bruker statisk typing, Mens Python er dynamisk skrevet.
  4. Python er enklere og mer kompakt i forhold til Java.

Spรธrsmรฅl og svar

Kjรธr pip install selenium. Modern Selenium skip med Selenium Manager, som laster ned den samsvarende nettleserdriveren automatisk, slik at det ikke er nรธdvendig med manuell oppsett av Chromedriver.

WebDriver er den Selenium grensesnitt som driver en ekte nettleser, og sender kommandoer til Firefox, Chrome eller Edge for รฅ kontrollere navigasjon, klikk og skjemainndata.

Selenium 4 fjernet find_element_by_id. Bruk By-klassen: fra selenium.webdriver.common.by import By, deretter driver.find_element(By.ID, "email").

Implisitt venting avstemmer DOM-en i en angitt tidsperiode. Eksplisitt venting (WebDriverWait) pauser inntil en spesifikk betingelse er oppfylt. Unngรฅ รฅ blande dem for รฅ forhindre uforutsigbar timing.

Nei. PyDev in Eclipse er ett alternativ. Du kan ogsรฅ kjรธre Selenium Python skript i PyCharm, VS Code, eller fra kommandolinjen.

Selenium WebDriver-stรธtte Firefox, Chrome, Edge, Safari og Internet Explorer. Det samme Python skriptet kjรธrer pรฅ tvers av dem via swapping sjรฅfรธren.

Ja. AI-assistenter som ChatGPT gjรธr en testbeskrivelse i et enkelt sprรฅk om til Selenium Python kode, foreslรฅ lokatorer og konvertere gamle find_element_by_id-kall til By-syntaks.

Ja. GitHub Copilot foreslรฅr stabile lokatorer, forklarer NoSuchElementException-feil og anbefaler eksplisitte ventetider, noe som reduserer ustabile tester pรฅ dynamiske sider.

Oppsummer dette innlegget med: