Selenium-Praxisprojekt

In der modernen Softwareentwicklung ist automatisiertes Testen zu einem der wichtigen Mittel geworden, um die Softwarequalität zu sichern.

Selenium ist ein weit verbreitetes automatisiertes Testwerkzeug, das mehrere Programmiersprachen und Browser unterstützt und Benutzeraktionen simulieren kann, um Funktionstests, Regressionstests und vieles mehr durchzuführen.

Dieser Artikel beschreibt ausführlich, wie man Selenium für automatisierte Tests verwendet, und zeigt anhand praktischer Projekte, wie automatisierte Tests für gängige Funktionen wie Login, Registrierung und Suche implementiert werden (am Beispiel von Baidu).

1. Praktisches Projekt: Automatisierter Testfall

1.1 Test der Login-Funktion

Angenommen, wir haben eine Login-Seite mit einem Benutzername-Eingabefeld, einem Passwort-Eingabefeld und einer Login-Schaltfläche. Wir werden ein automatisiertes Testskript schreiben, um den Anmeldevorgang eines Benutzers zu simulieren.

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import Durch
from selenium.webdriver.common.keys import Keys

chrome_options = Options()
# Korrekten Treiberpfad festlegen
service = ChromeService(executable_path="./chromedriver-mac-arm64/chromedriver")
driver = webdriver.Chrome(service=service, options=chrome_options)

# Login-Seite öffnen
driver.get("https://example.com/login")

# Benutzername-Eingabefeld lokalisieren und Benutzernamen eingeben
username_input = driver.find_element(By.ID, "username")
username_input.send_keys("testuser")

# Passwort-Eingabefeld lokalisieren und Passwort eingeben
password_input = driver.find_element(By.ID, "password")
password_input.send_keys("password123")

# Den Login-Button lokalisieren und anklicken
login_button = driver.find_element(By.ID, "login-button")
login_button.click()

# Überprüfen, ob die Anmeldung erfolgreich war
assert "Welcome" in driver.page_source

# Den Browser schließen
driver.quit()

1.2 Test der Registrierungsfunktion

Als Nächstes schreiben wir ein automatisiertes Testskript, um den Benutzerregistrierungsvorgang zu simulieren.

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import Durch

# Chrome-Optionen konfigurieren
chrome_options = Options()

# Korrekten Treiberpfad festlegen
service = ChromeService(executable_path="./chromedriver-mac-arm64/chromedriver")
driver = webdriver.Chrome(service=service, options=chrome_options)

# Die Registrierungsseite öffnen
driver.get("https://example.com/register")

# Benutzername-Eingabefeld lokalisieren und Benutzernamen eingeben
username_input = driver.find_element(By.ID, "username")
username_input.send_keys("newuser")

# Das E-Mail-Eingabefeld lokalisieren und die E-Mail eingeben
email_input = driver.find_element(By.ID, "email")
email_input.send_keys("[email protected]")

# Passwort-Eingabefeld lokalisieren und Passwort eingeben
password_input = driver.find_element(By.ID, "password")
password_input.send_keys("newpassword123")

# Eingabefeld für die Passwortbestätigung suchen und das Passwort eingeben
confirm_password_input = driver.find_element(By.ID, "confirm-password")
confirm_password_input.send_keys("newpassword123")

# Registrierungsschaltfläche suchen und anklicken
register_button = driver.find_element(By.ID, "register-button")
register_button.click()

# Überprüfen, ob die Registrierung erfolgreich war
assert "Registration successful" in driver.page_source

# Den Browser schließen
driver.quit()

1.3 Test der Suchfunktion (Baidu)

Abschließend schreiben wir ein automatisiertes Testskript, um zu simulieren, dass der Benutzer ein Schlüsselwort in das Baidu-Suchfeld eingibt und eine Suche durchführt.

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import Durch
from selenium.webdriver.common.keys import Keys

# Chrome-Optionen konfigurieren
chrome_options = Options()

# Korrekten Treiberpfad festlegen
service = ChromeService(executable_path="./chromedriver-mac-arm64/chromedriver")
driver = webdriver.Chrome(service=service, options=chrome_options)

# Baidu-Startseite öffnen
driver.get("https://www.baidu.com")

# Das Suchfeld lokalisieren und ein Schlüsselwort eingeben
search_box = driver.find_element(By.NAME, "wd")
search_box.send_keys("example")

# Das Drücken der Eingabetaste simulieren, um zu suchen
search_box.send_keys(Keys.RETURN)

# Überprüfen, ob die Seite mit den Suchergebnissen das Schlüsselwort enthält
assert "example" in driver.page_source

# Den Browser schließen
driver.quit()
Andere Erweiterungen