Selenium Python Tutorial med WebDriver Eksempel
Selenium med Python
Selenium understรธtninger Python og dermed kan bruges som Selenium WebDriver med Python til testning.
- Python er let sammenlignet med andre programmeringssprog, og har langt mindre udfรธrligt.
- Python API'er giver dig mulighed for at oprette forbindelse til browseren gennem Selenium.
- Selenium sender standarden Python kommandoer til forskellige browsere, pรฅ trods af variation i deres browsers design.
Du kan kรธre Selenium med Python scripts til Firefox, Chrome, IE osv. pรฅ forskellige Operating Systemer.
Hvad er Python?
Python er et objektorienteret scriptsprog pรฅ hรธjt niveau. Den er designet pรฅ en brugervenlig mรฅde. Python bruger simple engelske sรธgeord, som er nemme at fortolke. Det har fรฆrre syntakskomplikationer end nogen anden programmeringssprog.
Se nogle af eksemplerne i tabellen nedenfor.
| Sรธgeord | Betydning | Brug |
|---|---|---|
| Elif | Ellers hvis | Ellers hvis |
| andet | Else | hvis: X; elif: Y; andet: J |
| undtagen | gรธr dette, hvis der sker en undtagelse, | undtagen ValueError, a: udskriv en |
| exec | Kรธr streng som Python | exec 'print "hej verden!"' |
Hvad er Selenium?
Selenium er et vรฆrktรธj til at teste din webapplikation. Det kan du f.eks. gรธre pรฅ forskellige mรฅder
- Tillad det at trykke pรฅ knapper
- Indtast indhold i strukturer
- Skim dit websted for at kontrollere, om alt er "OK" og sรฅ videre.
Sรฅdan installeres og konfigureres PyDev in Eclipse
PyDev is Python udviklingsmiljรธ for Eclipse.
Trin 1) Bliver nรธdt til Eclipse Markedsplads. Hjรฆlp > Installer ny software
Det nรฆste trin er at installere "pydev IDE" til eclipse.
Trin 2) I dette trin,
- Sรธg efter "http://pydev.org/updates" i Arbejde med og derefter
- Vรฆlg alle anfรธrte elementer, og klik pรฅ Nรฆste to gange
- Accepter licensaftalen, og klik pรฅ Udfรธr.
Trin 3) Du kan stรธde pรฅ sikkerhedsadvarsel, klik pรฅ "Installer alligevel".
Trin 4) Nu, i dette trin angiver du prรฆferencer. Ved hjรฆlp af prรฆferencemulighed, kan du bruge Python efter projektets behov.
Gรฅ til Vindue > Prรฆferencer > PyDev > Tolk > Python Tolk.
Lad os indstille standarden Python Tolk. Det er ligesom du skal indstille java compiler til at kรธre en Java kode. For at รฆndre fortolkerens navn, klik pรฅ Sรธg efter python/pypy exe-knap.
Trin 5) I dette trin skal du angive "tolkenavnet" og "exe"-filstien til Python.
- Klik pรฅ 'Gennemse' og find python.exe, hvor du installerede Python.
- Klik pรฅ knappen 'OK'.
- Vรฆlg hele mappen og klik pรฅ OK
- Klik pรฅ "Anvend og luk".
Trin 6) Lav et nyt projekt i Python. I dette trin,
- Hรธjreklik PyDev Pakke Explorer > Ny.
- Vรฆlg mulighed andre.
- Vรฆlg "PyDev > PyDev Projekt".
- Tryk pรฅ knappen 'Nรฆste'.
- Navngiv dit projekt
- Klik pรฅ "Afslut".
Du kan se det nye Python (PyDev) projektet er oprettet.
Trin 7) I dette trin,
Efter oprettelse 'PyDev Project', vil du oprette en ny Python pakke.
- Hรธjreklik pรฅ Projekt > Ny > PyDev Pakke.
- Navngiv din pakke, og klik pรฅ Udfรธr.
Trin 8) Hvis du ser nedenstรฅende skรฆrmbillede, oprettes en ny pakke.
Efter at have oprettet en ny pakke, er nรฆste trin at oprettePyDev modul. Modulet indeholder nogle Python filer til initialisering. Disse filer eller funktioner fra modulet kan importeres til andre modul. Sรฅ der vil ikke vรฆre behov for at omskrive programmet igen.
Trin 9) Opret en ny PyDev modul. Hรธjreklik pรฅ pakke > Ny > PyDev modul.
Navngiv dit modul og klik pรฅ "Udfรธr".
Vรฆlg Tรธm skabelon og klik pรฅ "OK".
Trin 10) Skriv din kode til Selenium med Python som vist nedenfor
Sรฅdan opretter du testscripts i Selenium med Python
I denne Selenium WebDriver med Python for eksempel lavede vi automatisering af "Facebook login-side" ved hjรฆlp af Firefox chauffรธr.
Selenium med Python Eksempel 1: Log ind 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()
Snapshot af koden
Forklaring af koden
- Kodelinje 1: Fra selenmodul import webdriver
- Kodelinje 2: Fra selen modul import nรธgler
- Kodelinje 3: Bruger er en variabel, som vil blive brugt til at gemme vรฆrdier af brugernavn.
- Kodelinje 4: Variabel "adgangskode" vil blive brugt til at gemme vรฆrdier af adgangskoden.
- Kodelinje 5: I denne linje initialiserer vi "FireFoxโ ved at lave et objekt af det.
- Kodelinje 6: "driver.get-metoden" vil navigere til en side givet af URL'en. WebDriver vil vente, indtil siden er blevet fuldstรฆndig indlรฆst (det vil sige, at "onload" lejligheden er sluppet), fรธr den vender tilbage til din test eller script.
- Kodelinje 7: I denne linje finder vi det element i tekstboksen, hvor "e-mailen" skal skrives.
- Kodelinje 8: Nu sender vi vรฆrdierne til e-mail-sektionen
- Kodelinje 9: Samme for adgangskoden
- Kodelinje 10: Sender vรฆrdier til adgangskodesektionen
- Kodelinje 11: element.send_keys(Keys.RETURN) bruges til at trykke enter, efter at vรฆrdierne er indsat
- Kodelinje 12: Tรฆt
PRODUKTION
Vรฆrdierne for brugernavnet "guru99" og adgangskoden indtastet.
Facebook-siden vil logge ind med e-mail og adgangskode. Siden รฅbnet (se billedet nedenfor)
Selenium med Python EKSEMPEL 2: Log ind pรฅ Facebook og tjek titel
I dette eksempel
- Vi รฅbner en login-side.
- Udfyld det pรฅkrรฆvede felt "brugernavn" og "adgangskode".
- Tjek sidetitel
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"
Snapshot af koden
Forklaring af koden:
- Kodelinje 1-2: Importer selenpakker
- Kodelinje 4: Initialiser Firefox ved at skabe et objekt
- Kodelinje 6: Fรฅ login-side (Facebook)
- Kodelinje 8-10: Hent brugernavn, adgangskodeindtastningsfelter og send-knap.
- Kodelinje 11-12: Indtast data i indtastningsfelterne for brugernavn og adgangskode
- Kodelinje 14: Klik pรฅ knappen "Send".
- Kodelinje 15: Opret venteobjekt med en timeout pรฅ 5 sek.
- Kodelinje 16: Indfangning af titlen fra "browser"-objekt.
- Kodelinje 17: Test af den fangede titelstreng med "Facebook"
Hvorfor vรฆlge Python i lรธbet af Java in Selenium
Fรฅ punkter, der favoriserer Python i lรธbet af Java at bruge med Selenium er,
- Java programmer har en tendens til at kรธre langsommere i forhold til Python programmer.
- Java bruger traditionelle seler til at starte og afslutte blokke, mens Python bruger indrykning.
- Java anvender statisk typning, mens Python er dynamisk indtastet.
- Python er enklere og mere kompakt i forhold til Java.
Resumรฉ
- Selenium er en open source webbaseret automatiseringsvรฆrktรธj.
- Python sprog bruges med Selenium til test. Det har langt mindre udfรธrligt og nemt at bruge end noget andet programmeringssprog
- Python API'er giver dig mulighed for at oprette forbindelse til browseren gennem Selenium
- Selenium kan sende standarden Python kommandoer til forskellige browsere, pรฅ trods af variation i deres browsers design.




















