Selenium Python Handledning med WebDriver (exempel)

โšก Smart sammanfattning

Selenium med Python parar ihop WebDriver-automatiseringsbiblioteket med Python koncis syntax fรถr att testa webbapplikationer รถverallt Firefox, Chrome och Internet Explorer. Den hรคr genomgรฅngen konfigurerar PyDev in Eclipse, skriver inloggningsskript och fรถrklarar varfรถr team fรถredrar Python รถver Java.

  • ๐Ÿ Python Fรถrdel: Less verbรถs syntax gรถr Selenium skript som รคr enklare att lรคsa och underhรฅlla.
  • ๐ŸŒ WebDriver: Skickar standardkommandon till Firefox, Chrome och IE oavsett webblรคsarens design.
  • ๐Ÿงฉ PyDev Setup: installera PyDev plugin in Eclipse och stรคlla in Python tolk.
  • ๐Ÿ“ Inloggningsskript: Leta reda pรฅ fรคlt efter ID, skicka nycklar och skicka in formulรคret automatiskt.
  • โœ… Titelpรฅstรฅende: WebDriverWait plus assert verifierar sidtiteln efter inloggning.
  • ๐Ÿค– AI Assist: AI-verktyg genererar positionerare och Selenium Python skript frรฅn vanliga prompter.

Selenium Python Handledning med WebDriver

Selenium med Python

Selenium stรถder Python och dรคrmed kan anvรคndas som Selenium WebDriver med Python fรถr provning.

  • Python รคr enkelt jรคmfรถrt med andra programmeringssprรฅk, med betydligt mindre utfรถrlig syntax.
  • Ocuco-landskapet Python API:er ger dig mรถjlighet att ansluta till webblรคsaren via Selenium.
  • Selenium skickar standarden Python kommandon till olika webblรคsare, trots variationer i deras webblรคsardesign.

Du kan springa Selenium med Python skript fรถr Firefox, Chrome, IE, etc. pรฅ olika operativsystem.

Vad รคr Python?

Python รคr ett objektorienterat skriptsprรฅk pรฅ hรถg nivรฅ. Den รคr designad pรฅ ett anvรคndarvรคnligt sรคtt. Python anvรคnder enkla engelska nyckelord som รคr lรคtta att tolka. Den har fรคrre syntaxkomplikationer รคn nรฅgon annan programmeringssprรฅk.

Se nรฅgra av exemplen i tabellen nedan.

Nyckelord Betydelse Anvรคndning
elif Annars om Annars om
annars annars om: X; elif: Y; annat: J
utom Gรถr detta om ett undantag intrรคffar fรถrutom ValueError, a: print a
exec Kรถr strรคng som Python exec 'skriv ut "hej vรคrlden!"'

Vad รคr Selenium?

Selenium รคr ett verktyg fรถr att testa din webbapplikation. Du kan gรถra detta pรฅ olika sรคtt, till exempel:

  • Tillรฅt den att trycka pรฅ knappar.
  • Ange innehรฅll i formulรคr.
  • Skumma din webbplats fรถr att kontrollera om allt รคr "OK" och sรฅ vidare.

Hur man installerar och konfigurerar PyDev in Eclipse

PyDev รคr Python utvecklingsmiljรถ fรถr Eclipse.

Steg 1) Gรฅ till Eclipse Marketplace. Hjรคlp > Installera ny programvara.

Installera och konfigurera PyDev in Eclipse

Nรคsta steg รคr att installera "pydev IDE" fรถr Eclipse.

Steg 2) I det hรคr steget:

  1. Sรถk efter โ€œhttp://pydev.org/updatesโ€ i Arbeta med, och sedan
  2. Markera alla listade objekt och klicka tvรฅ gรฅnger pรฅ Nรคsta.
  3. Godkรคnn licensavtalet och klicka pรฅ Slutfรถr.

Installera och konfigurera PyDev in Eclipse

Steg 3) Du kan fรฅ en sรคkerhetsvarning. Klicka pรฅ โ€Installera รคndรฅโ€.

Installera och konfigurera PyDev in Eclipse

Steg 4) Ange instรคllningar sรฅ att du kan anvรคnda Python enligt projektets behov. Gรฅ till Fรถnster > Instรคllningar > PyDev > Tolk > Python Tolk.

Installera och konfigurera PyDev in Eclipse

Stรคll in standard Python Tolk, precis som du stรคller in Java kompilator fรถr att kรถra Java kod. Fรถr att รคndra tolkens namn, klicka pรฅ knappen Blรคddra efter python/pypy exe.

Installera och konfigurera PyDev in Eclipse

Steg 5) I det hรคr steget, ange "tolknamnet" och "exe"-filsรถkvรคgen fรถr Python.

  1. Klicka pรฅ "Blรคddra" och hitta python.exe dรคr du installerade Python.
  2. Klicka pรฅ "OK" -knappen.
  3. Markera alla mappar och klicka pรฅ OK.
  4. Klicka pรฅ "Ansรถk och stรคng".

Installera och konfigurera PyDev in Eclipse

Steg 6) Skapa ett nytt projekt i PythonI det hรคr steget:

  1. Hรถgerklicka PyDev Paketutforskare > Nytt.
  2. Vรคlj alternativ andra.

Installera och konfigurera PyDev in Eclipse

  1. Vรคlj "PyDev > PyDev Projekt".
  2. Tryck pรฅ knappen 'Nรคsta'.

Installera och konfigurera PyDev in Eclipse

  1. Namnge ditt projekt.
  2. Klicka pรฅ "Slutfรถr".

Installera och konfigurera PyDev in Eclipse

Du kan se det nya Python (PyDev) projekt skapas.

Steg 7) Efter att ha skapat 'PyDev Project' kommer du att skapa en ny Python paket.

  1. Hรถgerklicka pรฅ Projekt > Nytt > PyDev Paket.
  2. Namnge ditt paket och klicka pรฅ Slutfรถr.

Installera och konfigurera PyDev in Eclipse

Installera och konfigurera PyDev in Eclipse

Steg 8) Om du ser det pรฅ skรคrmdumpen nedan har ett nytt paket skapats.

Installera och konfigurera PyDev in Eclipse

Skapa sedan en PyDev modul. Modulen innehรฅller Python filer fรถr initialisering, vars funktioner kan importeras till en annan modul, vilket undviker omskrivning av programmet.

Steg 9) Skapa en ny PyDev modul. Hรถgerklicka pรฅ paket > Nytt > PyDev modul.

Installera och konfigurera PyDev in Eclipse

Namnge din modul och klicka pรฅ "Slutfรถr".

Installera och konfigurera PyDev in Eclipse

Vรคlj Tom mall och klicka pรฅ "OK".

Installera och konfigurera PyDev in Eclipse

Steg 10) Skriv din kod fรถr Selenium med Python som visas nedan.

Installera och konfigurera PyDev in Eclipse

Hur man skapar testskript i Selenium med Python

I detta Selenium WebDriver med Python till exempel automatiserade vi "Facebooks inloggningssida" med hjรคlp av Firefox fรถrare.

Selenium med Python Exempel 1: Logga in 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()

ร–gonblicksbild av Code

Skapa testskript i Selenium med Python

Fรถrklaring av koden

  • Code rad 1: Importera webdrivern frรฅn Selenium-modulen.
  • Code rad 2: Importera nycklar frรฅn Selenium-modulen.
  • Code rad 3: anvรคndarnamn รคr en variabel som anvรคnds fรถr att lagra vรคrdet pรฅ anvรคndarnamnet.
  • Code rad 4: Variabeln "lรถsenord" kommer att anvรคndas fรถr att lagra lรถsenordets vรคrde.
  • Code rad 5: Initiera "Firefoxโ€ genom att gรถra ett fรถremรฅl av det.
  • Code rad 6: Metoden โ€driver.getโ€ navigerar till sidan som anges av URLWebDriver vรคntar tills sidan har laddats helt innan den รฅterstรคller kontrollen till ditt skript.
  • Code rad 7: Hitta textruteelementet dรคr "e-postadressen" ska skrivas.
  • Code rad 8: Skicka vรคrdena till e-postsektionen.
  • Code rad 9: Samma sak gรคller lรถsenordet.
  • Code rad 10: Skicka vรคrden till lรถsenordsavsnittet.
  • Code rad 11: element.send_keys(Keys.RETURN) trycker pรฅ enter efter att vรคrdena har infogas.
  • Code rad 12: Stรคng.

Produktion: Vรคrdena fรถr anvรคndarnamnet "guru99" och lรถsenordet anges.

Skapa testskript i Selenium med Python

Facebook-sidan loggar in med e-postadress och lรถsenord. Sidan รถppnas (se bilden nedan).

Skapa testskript i Selenium med Python

Selenium med Python Exempel 2: Logga in pรฅ Facebook och kontrollera titeln

I det hรคr exemplet รถppnar vi en inloggningssida, fyller i de obligatoriska fรคlten "anvรคndarnamn" och "lรถsenord" och kontrollerar sidtiteln.

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"

ร–gonblicksbild av koden

Skapa testskript i Selenium med Python

Fรถrklaring av koden:

  • Code rad 1-2: Importera selenpaket.
  • Code rad 4: initialisera Firefox genom att skapa ett objekt.
  • Code rad 6: Hรคmta inloggningssidan (Facebook).
  • Code rad 8-10: Hรคmta anvรคndarnamn, lรถsenordsinmatningsrutor och skicka-knappen.
  • Code rad 11-12: Ange data i inmatningsrutorna fรถr anvรคndarnamn och lรถsenord.
  • Code rad 14: Klicka pรฅ knappen "Skicka".
  • Code rad 15: Skapa ett vรคntobjekt med en timeout pรฅ 5 sekunder.
  • Code rad 16: Hรคmta titeln frรฅn "webblรคsar"-objektet.
  • Code rad 17: Testa den inspelade titelstrรคngen med โ€Facebookโ€.

Varfรถr vรคlja Python รถver Java in Selenium

Nรฅgra punkter som gynnar Python รถver Java att anvรคnda med Selenium รคr:

  1. Java program tenderar att kรถras lรฅngsammare jรคmfรถrt med Python program.
  2. Java anvรคnder traditionella stag fรถr att starta och avsluta block, medan Python anvรคnder indrag.
  3. Java anvรคnder statisk typingMedan Python รคr dynamiskt skriven.
  4. Python รคr enklare och mer kompakt jรคmfรถrt med Java.

Vanliga frรฅgor

Kรถr pip install selenium. Modern Selenium fartyg med Selenium Manager, som laddar ner matchande webblรคsardrivrutin automatiskt, sรฅ ingen manuell installation av Chrome-drivrutinen behรถvs.

WebDriver รคr den Selenium grรคnssnitt som driver en riktig webblรคsare och skickar kommandon till Firefox, Chrome eller Edge fรถr att styra navigering, klick och formulรคrinmatning.

Selenium 4 tog bort find_element_by_id. Anvรคnd By-klassen: frรฅn selenium.webdriver.common.by importera By, sedan driver.find_element(By.ID, "email").

Implicit vรคntan avsรถker DOM under en viss tid. Explicit vรคntan (WebDriverWait) pausar tills ett specifikt villkor รคr uppfyllt. Undvik att blanda dem fรถr att fรถrhindra ofรถrutsรคgbar timing.

Nej. PyDev in Eclipse รคr ett alternativ. Du kan ocksรฅ kรถra Selenium Python skript i PyCharm, VS Code, eller frรฅn kommandoraden.

Selenium WebDriver-stรถd Firefox, Chrome, Edge, Safari och Internet Explorer. Samma Python skriptet kรถrs รถver dem med swapping fรถraren.

Ja. AI-assistenter som ChatGPT fรถrvandlar en testbeskrivning pรฅ ett enkelt sprรฅk till Selenium Python kod, fรถreslรฅ lokaliseringsverktyg och konvertera gamla find_element_by_id-anrop till By-syntax.

Ja. GitHub Copilot fรถreslรฅr stabila positionerare, fรถrklarar NoSuchElementException-fel och rekommenderar explicita vรคntetider, vilket minskar ostabila tester pรฅ dynamiska sidor.

Sammanfatta detta inlรคgg med: