Selenium Browser-Operationen

Selenium kann nicht nur mit Webseitenelementen arbeiten, sondern auch das Verhalten des Browsers selbst steuern, z. B. Fenster verwalten, Pop-ups behandeln, Cookies manipulieren, JavaScript ausführen und so weiter.

Im Folgenden sind gängige Browser-Operationen in Selenium und ihre Beschreibungen aufgeführt:

VorgangstypMethodeBeschreibung
Ein neues Fenster öffnenexecute_script("window.open('URL');")Ein neues Fenster mit JavaScript öffnen.
Fenster wechselnswitch_to.window(window_handle)Zum angegebenen Fenster-Handle wechseln.
Fenster schließenclose()Das aktuelle Fenster schließen.
Fenster maximierenmaximize_window()Das Browserfenster maximieren.
Fenstergröße festlegenset_window_size(width, height)Die Größe des Browserfensters festlegen.
Vollbildmodusfullscreen_window()Das Browserfenster in den Vollbildmodus versetzen.
Webseite öffnenget(url)Die angegebene URL öffnen.
Vorwärts und zurückback()undforward()Zur vorherigen Seite zurück oder zur nächsten Seite vorwärts gehen.
Seite aktualisierenrefresh()Aktuelle Seite aktualisieren.
Alert-Popup behandelnswitch_to.alertIn Kombination mitaccept()oderdismiss()Das Alert-Popup behandeln und auf OK oder Abbrechen klicken.
Confirm-Popup behandelnswitch_to.alertIn Kombination mitaccept()oderdismiss()Das Confirm-Popup behandeln und auf OK oder Abbrechen klicken.
Prompt-Popup behandelnswitch_to.alertIn Kombination mitsend_keys()undaccept()oderdismiss()Das Prompt-Popup behandeln, Text eingeben und dann auf OK oder Abbrechen klicken.
Cookie hinzufügenadd_cookie(cookie_dict)Das angegebene Cookie hinzufügen.
Cookie abrufenget_cookie(name)oderget_cookies()Das angegebene Cookie oder alle Cookies abrufen.
Cookie löschendelete_cookie(name)oderdelete_all_cookies()Das angegebene Cookie oder alle Cookies löschen.
JavaScript ausführenexecute_script(script)Den angegebenen JavaScript-Code ausführen.
Den JavaScript-Rückgabewert abrufenexecute_script("return ...")JavaScript ausführen und das Ergebnis zurückgeben.
Zum iframe wechselnswitch_to.frame(iframe_element)Zum angegebenen iframe wechseln.
Zurück zur Hauptseite wechselnswitch_to.default_content()Zurück zur Hauptseite wechseln.

1. Umgang mit Browser-Popups (alert, confirm, prompt)

In Webanwendungen sind Popups (wie alert, confirm, prompt) eine gängige Methode der Benutzerinteraktion. Selenium bietetAlerteine Klasse zum Umgang mit diesen Popups.

1.1 Umgang mit alert-Popups

alertDas alert-Popup wird typischerweise verwendet, um eine Nachricht anzuzeigen, und der Benutzer kann nur auf die Schaltfläche "OK" klicken, um es zu schließen.

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.alert import Warnung

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


# Webseite öffnen
driver.get("https://example.com")

# alert-Popup auslösen
driver.execute_script("alert('This is an alert popup');")

# Zum alert-Popup wechseln
alert = Alert(driver)

# Popup-Text abrufen
print(alert.text)

# Auf die Schaltfläche "OK" klicken, um das Popup zu schließen
alert.accept()

# Den Browser schließen
driver.quit()

1.2 Umgang mit Confirm-Popups

confirmDas Confirm-Popup wird normalerweise verwendet, um eine Aktion zu bestätigen, und der Benutzer kann "OK" oder "Abbrechen" wählen.

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.alert import Warnung

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

# Webseite öffnen
driver.get("https://example.com")

# Confirm-Popup auslösen
driver.execute_script("confirm('Dies ist ein Confirm-Popup');")

# Zum Confirm-Popup wechseln
alert = Alert(driver)

# Popup-Text abrufen
print(alert.text)

# Auf die Schaltfläche "OK" klicken
alert.accept()

# Oder auf die Schaltfläche "Abbrechen" klicken
# alert.dismiss()

# Den Browser schließen
driver.quit()

1.3 Umgang mit Prompt-Popups

promptDas Prompt-Popup wird typischerweise verwendet, um Benutzereingaben zu erhalten; der Benutzer kann Text eingeben und "OK" oder "Abbrechen" wählen.

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.alert import Warnung

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

# Browser starten
driver = webdriver.Chrome()

# Webseite öffnen
driver.get("https://example.com")

# Prompt-Popup auslösen
driver.execute_script("prompt('Dies ist ein Prompt-Popup');")

# Zum Prompt-Popup wechseln
alert = Alert(driver)

# Popup-Text abrufen
print(alert.text)

# Text eingeben
alert.send_keys("Benutzereingabe")

# Auf die Schaltfläche "OK" klicken
alert.accept()

# Oder auf die Schaltfläche "Abbrechen" klicken
# alert.dismiss()

# Den Browser schließen
driver.quit()

2. Wechseln zwischen Fenstern und Tabs

In Webanwendungen können Benutzer mehrere Fenster oder Tabs öffnen. Selenium bietetswitch_to.window()Methoden zum Wechseln zwischen Fenstern oder Tabs.

2.1 Fenster wechseln

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

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

# Erstes Fenster öffnen
driver.get("https://example.com")

# Zweites Fenster öffnen
driver.execute_script("window.open('https://example.org');")

# Alle Fenster-Handles abrufen
window_handles = driver.window_handles

# Zum zweiten Fenster wechseln
driver.switch_to.window(window_handles[1])

# Im zweiten Fenster arbeiten
print(driver.title)

# Zurück zum ersten Fenster wechseln
driver.switch_to.window(window_handles[0])

# Den Browser schließen
driver.quit()

2.2 Tabs wechseln

Das Wechseln zwischen Tabs ähnelt dem Wechseln zwischen Fenstern, da jeder Tab ein unabhängiges Fenster-Handle ist.

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

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

# Ersten Tab öffnen
driver.get("https://example.com")

# Zweiten Tab öffnen
driver.execute_script("window.open('https://example.org');")

# Alle Tab-Handles abrufen
tab_handles = driver.window_handles

# Zum zweiten Tab wechseln
driver.switch_to.window(tab_handles[1])

# Im zweiten Tab arbeiten
print(driver.title)

# Zurück zum ersten Tab wechseln
driver.switch_to.window(tab_handles[0])

# Den Browser schließen
driver.quit()

3. Umgang mit iframes

iframeEin iframe ist eine andere Webseite, die in eine Webseite eingebettet ist. Selenium bietetswitch_to.frame()Methoden zum Wechseln zu einem iframe.

3.1 Wechseln zu einem iframe

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

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

# Webseite öffnen
driver.get("https://example.com")

# Zum iframe wechseln
iframe = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(iframe)

# Im iframe arbeiten
print(driver.page_source)

# Zurück zur Hauptseite wechseln
driver.switch_to.default_content()

# Den Browser schließen
driver.quit()

3.2 Zurück zur Hauptseite wechseln

Nach Abschluss der Vorgänge im iframe können Sieswitch_to.default_content()Methoden verwenden, um zur Hauptseite zurückzuwechseln.

Beispiel

# Zurück zur Hauptseite wechseln
driver.switch_to.default_content()

4. Operationen mit Browser-Cookies

Selenium bietetget_cookies()、add_cookie()、delete_cookie()und andere Methoden zum Arbeiten mit Browser-Cookies.

4.1 Cookies abrufen

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

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

# Webseite öffnen
driver.get("https://example.com")

# Alle Cookies abrufen
cookies = driver.get_cookies()
print(cookies)

# Den Browser schließen
driver.quit()

4.2 Einen Cookie hinzufügen

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

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


# Webseite öffnen
driver.get("https://example.com")

# Cookie hinzufügen
driver.add_cookie({"name": "test", "value": "123"})

# Alle Cookies abrufen
cookies = driver.get_cookies()
print(cookies)

# Den Browser schließen
driver.quit()

4.3 Einen Cookie löschen

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

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

# Webseite öffnen
driver.get("https://example.com")

# Cookie hinzufügen
driver.add_cookie({"name": "test", "value": "123"})

# Cookie löschen
driver.delete_cookie("test")

# Alle Cookies abrufen
cookies = driver.get_cookies()
print(cookies)

# Den Browser schließen
driver.quit()

5. JavaScript-Code ausführen

Selenium bietetexecute_script()Methoden zum Ausführen von JavaScript-Code.

5.1 JavaScript-Code ausführen

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

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

# Webseite öffnen
driver.get("https://example.com")

# JavaScript-Code ausführen
driver.execute_script("alert('Dies ist ein JavaScript-Popup');")

# Den Browser schließen
driver.quit()

5.2 Abrufen des JavaScript-Rückgabewerts

Beispiel

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

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

# Webseite öffnen
driver.get("https://example.com")

# JavaScript-Code ausführen und den Rückgabewert abrufen
result = driver.execute_script("return document.title;")
print(result)

# Den Browser schließen
driver.quit()

6. Umfassendes Beispiel

Das Folgende ist ein vollständiges Beispiel, das zeigt, wie verschiedene Browser-Operationen verwendet werden:

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

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

# Webseite öffnen
driver.get("https://www.example.com")

# Fenster maximieren
driver.maximize_window()

# Cookie hinzufügen
driver.add_cookie({"name": "test", "value": "123"})

# Cookie abrufen
cookie = driver.get_cookie("test")
print("Cookie:", cookie)

# JavaScript ausführen
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

# Alert-Popup behandeln
driver.execute_script("alert('Hello, Selenium!');")
alert = driver.switch_to.alert
print("Popup-Text:", alert.text)
alert.accept()

# Zum iframe wechseln
iframe = driver.find_element(By.ID, "iframe-id")
driver.switch_to.frame(iframe)

# Zurück zur Hauptseite wechseln
driver.switch_to.default_content()

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