Selenium Maus- und Tastatur-Operationen

Selenium bietet umfangreiche Funktionen für Maus- und Tastaturbedienung, mit denen sich Benutzerinteraktionen simulieren lassen, wie Klicken, Doppelklicken, Drag-and-Drop, Hovern, Eingeben von Text, Drücken von Tastenkombinationen usw.

Im Folgenden sind häufig verwendete Maus- und Tastaturoperationen in Selenium und ihre Beschreibungen aufgeführt:

Mausoperationen

VorgangstypMethodeBeschreibung
Clickclick(element)oderclick()Führt einen Klick auf das angegebene Element oder die aktuelle Mausposition aus.
Doppelklickdouble_click(element)oderdouble_click()Führt einen Doppelklick auf das angegebene Element oder die aktuelle Mausposition aus.
Rechtsklickcontext_click(element)odercontext_click()Führt einen Rechtsklick auf das angegebene Element oder die aktuelle Mausposition aus.
Drag and Dropdrag_and_drop(source, target)Zieht das Quellelement und legt es auf dem Zielelement ab.
Hovermove_to_element(element)Bewegt die Maus zum angegebenen Element.
Drücken und Loslassenclick_and_hold(element)undrelease()Hält das angegebene Element gedrückt und lässt es los; wird verwendet, um Drag-Operationen umzusetzen.

Tastaturoperationen

VorgangstypMethodeBeschreibung
Text eingebensend_keys("text")Gibt den angegebenen Text in ein Eingabefeld oder einen Textbereich ein.
Tastenkombination drückensend_keys(Keys.CONTROL + 'a')Simuliert das Drücken von Tastenkombinationen (z. B. Ctrl + A).
Eine einzelne Taste drückensend_keys(Keys.KEY_NAME)Simuliert das Drücken einer einzelnen Taste (z. B. Enter, Tab, Shift usw.).
Taste loslassenkey_up(key)Lässt die gedrückte Taste los.

Gängige Tastatur-Tastenwerte

TastenwertBeschreibung
Keys.ENTEREnter-Taste
Keys.TABTab-Taste
Keys.SHIFTShift-Taste
Keys.CONTROLStrg-Taste
Keys.ALTAlt-Taste
Keys.ESCAPEEsc-Taste
Keys.BACKSPACERücktaste
Keys.SPACELeertaste
Keys.ARROW_UPPfeiltaste nach oben
Keys.ARROW_DOWNPfeiltaste nach unten
Keys.ARROW_LEFTPfeiltaste nach links
Keys.ARROW_RIGHTPfeiltaste nach rechts

Mausoperationen (ActionChains-Klasse)

In Selenium werden Mausoperationen hauptsächlich durch dieActionChainsclass.ActionChainsDie Klasse ermöglicht es uns, komplexe Mausoperationen auszuführen, wie Klicken, Doppelklicken, Rechtsklicken, Drag-and-Drop und Hovern.

Klicken, Doppelklick, Rechtsklick

  1. Click: Simuliert einen Klick mit der linken Maustaste.
  2. Double Click: Simuliert einen Doppelklick mit der linken Maustaste.
  3. Right Click: Simuliert einen Klick mit der rechten Maustaste.

Beispiel

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

# 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")

# Element lokalisieren
element = driver.find_element(By.ID, "element_id")

# ActionChains-Objekt erstellen
actions = ActionChains(driver)

# Klick-Operation
actions.click(element).perform()

# Doppelklick-Operation
actions.double_click(element).perform()

# Rechtsklick-Operation
actions.context_click(element).perform()

# Den Browser schließen
driver.quit()

Drag-and-Drop-Operationen

Der Drag-and-Drop-Vorgang bezieht sich auf das Ziehen eines Elements an eine andere Position oder auf ein anderes Element.

Beispiel

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

# 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")

# Das zu ziehende Element und das Zielelement lokalisieren
source_element = driver.find_element(By.ID, "source_element_id")
target_element = driver.find_element(By.ID, "target_element_id")

# ActionChains-Objekt erstellen
actions = ActionChains(driver)

# Drag-and-Drop-Operation
actions.drag_and_drop(source_element, target_element).perform()

# Den Browser schließen
driver.quit()

Hover-Operationen

Eine Hover-Operation bezieht sich auf das Verweilen des Mauszeigers über einem bestimmten Element, normalerweise um ein Dropdown-Menü auszulösen oder Tooltip-Informationen anzuzeigen.

Beispiel

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

# Browser-Treiber initialisieren
driver = webdriver.Chrome()

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

# Element lokalisieren
element = driver.find_element(By.ID, "element_id")

# ActionChains-Objekt erstellen
actions = ActionChains(driver)

# Hover-Operation
actions.move_to_element(element).perform()

# Den Browser schließen
driver.quit()

Tastatur-Operationen (Keys-Klasse)

Tastatur-Operationen in Selenium werden in erster Linie durch dieKeysclass.KeysDie Klasse stellt simulierte Operationen für verschiedene Tastaturtasten bereit, einschließlich des Sendens von Tastenkombinationen und speziellen Tastenoperationen.

Senden von Tastenkombinationen

Bei einer Tastenkombination werden mehrere Tasten gleichzeitig gedrückt, wie zum BeispielCtrl + C(Kopieren) oderCtrl + V(Einfügen).

Beispiel

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

# 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")

# Eingabefeld lokalisieren
input_element = driver.find_element(By.ID, "input_element_id")

# Inhalt eingeben und Tastenkombinationen senden
input_element.send_keys("Hello, World!")
input_element.send_keys(Keys.CONTROL, 'a')  # Alles auswählen
input_element.send_keys(Keys.CONTROL, 'c')  # Kopieren
input_element.send_keys(Keys.CONTROL, 'v')  # Einfügen

# Den Browser schließen
driver.quit()

Operationen mit Sondertasten (Enter, Tab, Shift usw.)

Eine Sondertastenoperation bezeichnet das Simulieren des Drückens von Sondertasten auf der Tastatur, wie z. B.Enter、Tab、Shiftusw.

Beispiel

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

# 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")

# Eingabefeld lokalisieren
input_element = driver.find_element(By.ID, "input_element_id")

# Inhalt eingeben und die Enter-Taste drücken
input_element.send_keys("Hello, World!")
input_element.send_keys(Keys.ENTER)

# Tab-Taste drücken, um zum nächsten Element zu wechseln
input_element.send_keys(Keys.TAB)

# Shift-Taste drücken und Großbuchstaben eingeben
input_element.send_keys(Keys.SHIFT, "a")  # Ein großes 'A' eingeben

# Den Browser schließen
driver.quit()

Umfassendes Beispiel

Das Folgende ist ein vollständiges Beispiel, das zeigt, wie man Maus- und Tastaturaktionen verwendet:

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.action_chains import ActionChains
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")

# Mausaktionen
element = driver.find_element(By.ID, "button")
actions = ActionChains(driver)
actions.move_to_element(element).click().perform()

# Tastaturaktionen
input_box = driver.find_element(By.ID, "input-box")
input_box.send_keys("Hello, Selenium!")
input_box.send_keys(Keys.ENTER)

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