Selenium – Eine Starke Python Open-Source-Bibliothek

In diesem Tutorial zeigen wir dir, wie du mit Python und Selenium eine automatisierte Webbrowser-Interaktion erstellen kannst. Selenium ist ein beliebtes Tool für Web-Automatisierungen, das besonders in den Bereichen Web-Scraping und Testing eingesetzt wird. Egal, ob du die Ladegeschwindigkeit einer Webseite testen, Daten extrahieren oder die Benutzeroberfläche simulieren möchtest – mit Selenium kannst du all dies effizient tun.

Was ist Selenium?

Selenium ist eine Open-Source-Bibliothek, die Webbrowser automatisiert steuern kann. Du kannst damit Aktionen wie das Klicken von Buttons, das Ausfüllen von Formularen oder das Navigieren durch Webseiten ausführen. Selenium unterstützt viele Browser wie Chrome, Firefox und Safari und ist mit mehreren Programmiersprachen wie Python, Java, C#, Ruby und JavaScript kompatibel.

In diesem Tutorial konzentrieren wir uns auf Python und zeigen dir, wie du mit Selenium einfache Web-Automatisierungsaufgaben erledigen kannst.

Voraussetzungen

Bevor wir beginnen, müssen wir sicherstellen, dass du die folgenden Tools installiert hast:

  1. Python: Wenn du Python noch nicht installiert hast, kannst du es von der offiziellen Webseite herunterladen: python.org.
  2. Selenium-Paket: Installiere das Selenium-Paket für Python mit dem folgenden Befehl:
    pip install selenium
  3. WebDriver: Selenium benötigt einen WebDriver, um mit einem Webbrowser zu kommunizieren. Für Chrome musst du den ChromeDriver installieren, für Firefox den GeckoDriver und so weiter. Du kannst den ChromeDriver hier herunterladen: ChromeDriver.

Dein erstes Selenium-Skript

Jetzt, da du alle Voraussetzungen erfüllt hast, lass uns ein einfaches Selenium-Skript schreiben, das den Chrome-Browser öffnet und eine Webseite lädt.

from selenium import webdriver

# WebDriver-Pfad (hier musst du den Pfad zu deinem ChromeDriver angeben)
driver_path = '/path/to/chromedriver'

# Einen neuen Chrome-Browser starten
driver = webdriver.Chrome(executable_path=driver_path)

# Öffne eine Webseite
driver.get('https://www.google.com')

# Warte 5 Sekunden (optional, nur um die Seite zu sehen)
import time
time.sleep(5)

# Schließe den Browser
driver.quit()

Erklärung:

  • webdriver.Chrome(): Diese Methode startet den Chrome-Browser. Du musst den Pfad zum chromedriver angeben, damit Selenium weiß, wo der WebDriver zu finden ist.
  • get('https://www.google.com'): Mit dieser Methode navigierst du zur angegebenen URL.
  • quit(): Diese Methode schließt den Browser, wenn die Automatisierung abgeschlossen ist.

Elemente auf der Webseite finden

Ein häufiges Szenario in der Web-Automatisierung ist das Finden und Interagieren mit bestimmten HTML-Elementen wie Buttons, Eingabefeldern oder Links. Selenium bietet verschiedene Methoden, um Elemente zu finden.

Finden von Elementen mit find_element_by_id:

from selenium import webdriver
from selenium.webdriver.common.by import By

# WebDriver starten
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

# Öffne Google
driver.get('https://www.google.com')

# Finde das Suchfeld auf der Google-Seite
search_box = driver.find_element(By.NAME, 'q')

# Gebe "Python" in das Suchfeld ein
search_box.send_keys('Python')

# Drücke die Eingabetaste (Enter)
search_box.submit()

# Warte ein paar Sekunden, um das Ergebnis zu sehen
import time
time.sleep(5)

# Schließe den Browser
driver.quit()

Erklärung:

  • find_element(): Diese Methode sucht nach einem Element, das den angegebenen Kriterien entspricht. In diesem Fall suchen wir nach dem Eingabefeld mit dem Namen q (das ist das Suchfeld bei Google).
  • send_keys(): Diese Methode sendet Text an ein Eingabefeld.
  • submit(): Diese Methode sendet das Formular ab (gleichwertig mit einem Klick auf die „Suchen“-Schaltfläche).

Mit Buttons und Links interagieren

Nun wollen wir Buttons und Links klicken. Hierzu verwenden wir die click()-Methode.

Klicken eines Buttons:

from selenium import webdriver
from selenium.webdriver.common.by import By

# WebDriver starten
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

# Öffne Google
driver.get('https://www.google.com')

# Finde das Suchfeld und gebe "Python" ein
search_box = driver.find_element(By.NAME, 'q')
search_box.send_keys('Python')

# Finde den Google-Suchen Button und klicke ihn
search_button = driver.find_element(By.NAME, 'btnK')
search_button.click()

# Warte ein paar Sekunden
import time
time.sleep(5)

# Schließe den Browser
driver.quit()

Klicken eines Links:

from selenium import webdriver
from selenium.webdriver.common.by import By

# WebDriver starten
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

# Öffne Google
driver.get('https://www.google.com')

# Finde das Suchfeld und gebe "Python" ein
search_box = driver.find_element(By.NAME, 'q')
search_box.send_keys('Python')

# Finde den ersten Link in den Suchergebnissen und klicke ihn
first_result = driver.find_element(By.XPATH, '(//h3)[1]')
first_result.click()

# Warte ein paar Sekunden
import time
time.sleep(5)

# Schließe den Browser
driver.quit()

Mit JavaScript arbeiten

Ein weiterer wichtiger Punkt ist die Interaktion mit dynamischen Inhalten. Wenn du mit Webseiten arbeitest, die stark auf JavaScript angewiesen sind, kannst du JavaScript direkt über den WebDriver ausführen.

from selenium import webdriver

# WebDriver starten
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

# Öffne eine Webseite
driver.get('https://www.example.com')

# Führe ein einfaches JavaScript aus
driver.execute_script('alert("Hello, Selenium!")')

# Warte, damit das Alert sichtbar wird
import time
time.sleep(2)

# Schließe den Browser
driver.quit()

Warten auf Elemente (Explizite und Implizite Wartezeiten)

In vielen Fällen wird der Browser automatisch Inhalte nachladen (wie beim Scrollen oder bei AJAX-Anfragen). Um sicherzustellen, dass dein Skript nicht fehlschlägt, weil ein Element noch nicht geladen wurde, kannst du explizite oder implizite Wartezeiten verwenden.

Implizite Wartezeit:

from selenium import webdriver

# WebDriver starten
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

# Setze eine implizite Wartezeit von 10 Sekunden
driver.implicitly_wait(10)

# Öffne eine Webseite
driver.get('https://www.google.com')

# Finde das Suchfeld
search_box = driver.find_element(By.NAME, 'q')

# Gebe "Python" ein
search_box.send_keys('Python')

# Schließe den Browser
driver.quit()

Explizite Wartezeit:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# WebDriver starten
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

# Öffne eine Webseite
driver.get('https://www.google.com')

# Warte explizit auf das Erscheinen des Suchfeldes
WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.NAME, 'q'))
)

# Finde das Suchfeld und gebe "Python" ein
search_box = driver.find_element(By.NAME, 'q')
search_box.send_keys('Python')

# Schließe den Browser
driver.quit()

Abschluss

Selenium ist ein mächtiges Werkzeug für die Web-Automatisierung, das dir dabei hilft, Webbrowser zu steuern, Web-Elemente zu finden und mit ihnen zu interagieren. Du kannst es für verschiedenste Aufgaben einsetzen, vom Web-Scraping über Tests bis hin zu einfachen Automatisierungen. Mit den richtigen Wartezeiten und der Kenntnis von XPath und CSS-Selektoren wird deine Automatisierung deutlich zuverlässiger und flexibler.

In diesem Tutorial haben wir die Grundlagen abgedeckt – vom Öffnen eines Browsers über das Finden von Elementen bis hin zur Interaktion mit Buttons und Links. Damit bist du gut gerüstet, um deine eigenen Web-Automatisierungen zu erstellen!

Happy Coding!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Ähnliche Beiträge

Linux

Installation von Nextcloud auf Linux Debian

Nextcloud ist eine Open-Source-Plattform für private Cloud-Speicherlösungen. Dieses Tutorial zeigt Schritt für Schritt, wie Nextcloud auf einem Debian-System installiert wird. Voraussetzungen System vorbereiten Dadurch werden

Weiterlesen »
Server

Rust Server erstellen auf Windows

Rust ist eines der beliebtesten Survival-Spiele, das von Facepunch Studios entwickelt wurde. Es fordert dich heraus, in einer offenen Welt zu überleben, Ressourcen zu sammeln

Weiterlesen »