Python Tutorial
- jetzt Python programmieren lernen

Selenium automatisiert/fernsteuert den Browser über Python

Selenium ist eine Bibliothek für Python um Aktionen im Browser fernzusteuern bzw. zu automatisieren. So kann man sehr einfach darüber auch Online-Anwendungen testen.

Im ersten Schritt müssen wir Selenium installieren. Das passiert über pip:

pip install selenium
Selenium über PIP installieren
Selenium über PIP installieren

Jetzt benötigen wir den passenden Treiber (driver) für unseren gewählten Browser (und Betriebssystem) unsere Wahl. Wenn wir Chrome nutzen, dann findet sich der Treiber unter http://chromedriver.chromium.org/downloads

Und dort für das eigene Betriebssystem und die Browserversion

chromedriver für eigenes Betriebssystem
chromedriver für eigenes Betriebssystem

Für Firefox:
https://github.com/mozilla/geckodriver/releases

Bei Mac Catalina kommt es zu Problemen wegen der Downloadquelle. Mehr dazu unter https://firefox-source-docs.mozilla.org/testing/geckodriver/Notarization.html

Wenn das ein Problem beim Mac ist, hilft das:

# für Chrome
xattr -r -d com.apple.quarantine chromedriver

# für Firefox
xattr -r -d com.apple.quarantine geckodriver

Jetzt können wir unser erstes Python Programm mit dem Modul Selenium schreiben:

from selenium import webdriver

driver = webdriver.Chrome('/Users/ich/Python-lernen.de/fs/chromedriver')

driver.get('https://www.google.de/')

Als Ausgabe erhalten wir nun den Browser gestartet und Google.de angezeigt:

Chrome über Selenium: Ausgabe Chrome wird von automatisierten Testsoftware gesteuert
Chrome über Selenium: Ausgabe Chrome wird von automatisierten Testsoftware gesteuert

Nachdem der Browser gestartet wurde und die Seite aufgebaut wurde, bleibt der Browser offen.

Jetzt wollen wir Aktionen im Browser ausführen. Allerdings sollten wir kurz warten, dass die Seite auch aufgerufen wurde und komplett dargestellt ist.

Daher schicken wir den Browser nach dem Aufruf der URL erst einmal schlafen. Dazu wird das Modul time importiert und dann schicken wir unser Python-Programm 3 Sekunden schlafen (PowerNap soll gesund sein).

from selenium import webdriver
import time

driver = webdriver.Chrome('/Users/ich/Python-lernen.de/fs/chromedriver')

driver.get('https://www.google.de/')

time.sleep(3)

Jetzt packen wir das Suchfeld in eine Variable über find_element_by_name() und schicken dort Tastatureingaben hin:

from selenium import webdriver
import time

driver = webdriver.Chrome('/Users/ich/Python-lernen.de/fs/chromedriver')

driver.get('https://www.google.de/')

time.sleep(3)

aktion = driver.find_element_by_name('q')
aktion.send_keys("Python lernen")
aktion.submit()

time.sleep(10)
driver.quit()