Selenium Python Vejledning med WebDriver (eksempel)

โšก Smart opsummering

Selenium med Python parrer WebDriver-automatiseringsbiblioteket med Python prรฆcis syntaks til at teste webapplikationer pรฅ tvรฆrs Firefox, Chrome og Internet Explorer. Denne gennemgang konfigurerer PyDev in Eclipse, skriver login-scripts og forklarer, hvorfor teams foretrรฆkker Python i lรธbet af Java.

  • ๐Ÿ Python Fordel: Less verbรธs syntaks gรธr Selenium scripts nemmere at lรฆse og vedligeholde.
  • ๐ŸŒ WebDriver: Sender standardkommandoer til Firefox, Chrome og IE uanset browserdesign.
  • ๐Ÿงฉ PyDev Opsรฆtning: Installer PyDev plugin i Eclipse og indstil Python tolk.
  • ๐Ÿ“ Login-scripts: Find felter efter ID, send nรธgler, og send formularen automatisk.
  • โœ… Titelpรฅstand: WebDriverWait plus assert verificerer sidetitlen efter login.
  • ๐Ÿค– AI Assist: AI-vรฆrktรธjer genererer lokaliseringspunkter og Selenium Python scripts fra almindelige prompter.

Selenium Python Vejledning med WebDriver

Selenium med Python

Selenium understรธtninger Python og dermed kan bruges som Selenium WebDriver med Python til testning.

  • Python er nemt sammenlignet med andre programmeringssprog, da det har langt mindre detaljeret syntaks.
  • 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 browserdesign.

Du kan kรธre Selenium med Python scripts til Firefox, Chrome, IE osv. pรฅ forskellige operativsystemer.

Hvad er Python?

Python er et objektorienteret scriptsprog pรฅ hรธjt niveau. Den er designet pรฅ en brugervenlig mรฅde. Python bruger simple engelske nรธgleord, som er lette at fortolke. Den 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 opstรฅr 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. Du kan gรธre dette pรฅ forskellige mรฅder, for eksempel:

  • Tillad den at trykke pรฅ knapper.
  • Indtast indhold i formularer.
  • Skim dit websted for at kontrollere, om alt er "OK" og sรฅ videre.

Sรฅdan installeres og konfigureres PyDev in Eclipse

PyDev er Python udviklingsmiljรธ for Eclipse.

Trin 1) Gรฅ til Eclipse Markedsplads. Hjรฆlp > Installer ny software.

Installer og konfigurer PyDev in Eclipse

Det nรฆste trin er at installere "pydev IDE" til Eclipse.

Trin 2) I dette trin:

  1. Sรธg efter โ€œhttp://pydev.org/updatesโ€ i Arbejd med, og derefter
  2. Vรฆlg alle listede elementer, og klik to gange pรฅ Nรฆste.
  3. Accepter licensaftalen, og klik pรฅ Udfรธr.

Installer og konfigurer PyDev in Eclipse

Trin 3) Du kan muligvis stรธde pรฅ en sikkerhedsadvarsel. Klik pรฅ โ€œInstaller alligevelโ€.

Installer og konfigurer PyDev in Eclipse

Trin 4) Angiv prรฆferencer, sรฅ du kan bruge Python efter projektets behov. Gรฅ til Vindue > Indstillinger > PyDev > Tolk > Python Tolk.

Installer og konfigurer PyDev in Eclipse

Indstil standard Python Tolk, ligesom du indstiller Java compiler til kรธrsel Java kode. For at รฆndre fortolkernavnet skal du klikke pรฅ knappen Gennemse efter python/pypy exe.

Installer og konfigurer PyDev in Eclipse

Trin 5) I dette trin skal du angive "tolkenavnet" og "exe"-filstien til Python.

  1. Klik pรฅ 'Gennemse' og find python.exe, hvor du installerede Python.
  2. Klik pรฅ knappen 'OK'.
  3. Vรฆlg alle mapperne, og klik pรฅ OK.
  4. Klik pรฅ "Anvend og luk".

Installer og konfigurer PyDev in Eclipse

Trin 6) Lav et nyt projekt i PythonI dette trin:

  1. Hรธjreklik PyDev Pakke Explorer > Ny.
  2. Vรฆlg mulighed andre.

Installer og konfigurer PyDev in Eclipse

  1. Vรฆlg "PyDev > PyDev Projekt".
  2. Tryk pรฅ knappen 'Nรฆste'.

Installer og konfigurer PyDev in Eclipse

  1. Navngiv dit projekt.
  2. Klik pรฅ "Afslut".

Installer og konfigurer PyDev in Eclipse

Du kan se det nye Python (PyDev) projektet er oprettet.

Trin 7) Efter at have oprettet 'PyDev Project', vil du oprette en ny Python pakke.

  1. Hรธjreklik pรฅ Projekt > Ny > PyDev Pakke.
  2. Navngiv din pakke, og klik pรฅ Udfรธr.

Installer og konfigurer PyDev in Eclipse

Installer og konfigurer PyDev in Eclipse

Trin 8) Hvis du ser det pรฅ skรฆrmbilledet nedenfor, er en ny pakke oprettet.

Installer og konfigurer PyDev in Eclipse

Opret derefter en PyDev modul. Modulet indeholder Python filer til initialisering, hvis funktioner kan importeres til et andet modul, hvilket undgรฅr omskrivning af programmet.

Trin 9) Opret en ny PyDev modul. Hรธjreklik pรฅ pakke > Ny > PyDev modul.

Installer og konfigurer PyDev in Eclipse

Navngiv dit modul, og klik pรฅ "Afslut".

Installer og konfigurer PyDev in Eclipse

Vรฆlg Tom skabelon, og klik pรฅ "OK".

Installer og konfigurer PyDev in Eclipse

Trin 10) Skriv din kode til Selenium med Python som vist nedenfor.

Installer og konfigurer PyDev in Eclipse

Sรฅdan opretter du testscripts i Selenium med Python

I denne Selenium WebDriver med Python For eksempel automatiserede vi "Facebook-loginsiden" 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()

ร˜jebliksbillede af Code

Opret testscripts i Selenium med Python

Forklaring af koden

  • Code linje 1: Importer webdriver fra Selenium-modulet.
  • Code linje 2: Importer nรธgler fra Selenium-modulet.
  • Code linje 3: brugernavn er en variabel, der bruges til at gemme vรฆrdien af โ€‹โ€‹brugernavnet.
  • Code linje 4: Variablen "password" vil blive brugt til at gemme vรฆrdien af โ€‹โ€‹adgangskoden.
  • Code linje 5: InitialiserFirefoxโ€ ved at lave et objekt af det.
  • Code linje 6: Metoden "driver.get" navigerer til den side, der er angivet af URLWebDriver venter, indtil siden er fuldt indlรฆst, fรธr den vender tilbage til dit script.
  • Code linje 7: Find tekstbokselementet, hvor "e-mailen" skal skrives.
  • Code linje 8: Send vรฆrdierne til e-mail-sektionen.
  • Code linje 9: Det samme gรฆlder for adgangskoden.
  • Code linje 10: Send vรฆrdier til adgangskodeafsnittet.
  • Code linje 11: element.send_keys(Keys.RETURN) trykker pรฅ enter efter vรฆrdierne er indsat.
  • Code linje 12: Luk.

Output: Vรฆrdierne for brugernavnet โ€œguru99โ€ og adgangskoden indtastes.

Opret testscripts i Selenium med Python

Facebook-siden logger ind med e-mail og adgangskode. Siden รฅbnes (se billede nedenfor).

Opret testscripts i Selenium med Python

Selenium med Python Eksempel 2: Log ind pรฅ Facebook og tjek titel

I dette eksempel รฅbner vi en login-side, udfylder de obligatoriske felter "brugernavn" og "adgangskode" og kontrollerer sidens titel.

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

Opret testscripts i Selenium med Python

Forklaring af koden:

  • Code linje 1-2: Importer selenpakker.
  • Code linje 4: Initialiser Firefox ved at oprette et objekt.
  • Code linje 6: Hent login-siden (Facebook).
  • Code linje 8-10: Hent brugernavn, indtastningsfelter til adgangskode og send-knappen.
  • Code linje 11-12: Indtast data i indtastningsfelterne for brugernavn og adgangskode.
  • Code linje 14: Klik pรฅ knappen "Send".
  • Code linje 15: Opret et venteobjekt med en timeout pรฅ 5 sekunder.
  • Code linje 16: Hent titlen fra "browser"-objektet.
  • Code linje 17: Test den optagne titelstreng med โ€œFacebookโ€.

Hvorfor vรฆlge Python i lรธbet af Java in Selenium

Et par punkter, der favoriserer Python i lรธbet af Java at bruge med Selenium er:

  1. Java programmer har en tendens til at kรธre langsommere i forhold til Python programmer.
  2. Java bruger traditionelle bรธjler til at starte og afslutte blokke, mens Python bruger indrykning.
  3. Java anvender statisk typing, mens Python er dynamisk indtastet.
  4. Python er enklere og mere kompakt i forhold til Java.

Ofte Stillede Spรธrgsmรฅl

Kรธr pip install selenium. Modern Selenium skibe med Selenium Manager, som automatisk downloader den matchende browserdriver, sรฅ manuel opsรฆtning af Chromedriver er ikke nรธdvendig.

WebDriver er den Selenium grรฆnseflade, der driver en rigtig browser og sender kommandoer til Firefox, Chrome eller Edge til at styre navigation, klik og formularinput.

Selenium 4 fjernede find_element_by_id. Brug By-klassen: fra selenium.webdriver.common.by import By, derefter driver.find_element(By.ID, โ€œemailโ€).

Implicit ventetid afspรธrger DOM'en i et bestemt tidsrum. Eksplicit ventetid (WebDriverWait) sรฆtter pรฅ pause, indtil en specifik betingelse er opfyldt. Undgรฅ at blande dem for at forhindre uforudsigelig timing.

Nej. PyDev in Eclipse er รฉn mulighed. Du kan ogsรฅ kรธre Selenium Python manuskripter i PyCharm, VS Codeeller fra kommandolinjen.

Selenium WebDriver understรธtter Firefox, Chrome, Edge, Safari og Internet Explorer. Det samme Python scriptet kรธrer pรฅ tvรฆrs af dem via swapping fรธreren.

Ja. AI-assistenter som ChatGPT forvandler en testbeskrivelse i et letforstรฅeligt sprog til Selenium Python kode, foreslรฅ lokatorer og konverter gamle find_element_by_id-kald til By-syntaks.

Ja. GitHub Copilot foreslรฅr stabile locators, forklarer NoSuchElementException-fejl og anbefaler eksplicitte ventetider, hvilket reducerer ustabile tests pรฅ dynamiske sider.

Opsummer dette indlรฆg med: