CodeGym /Java Kurs /Python SELF DE /Einrichten eines Skripts zur Automatisierung von Aktionss...

Einrichten eines Skripts zur Automatisierung von Aktionssequenzen auf einer Website

Python SELF DE
Level 37 , Lektion 4
Verfügbar

1. Aktionsszenario und dessen Reihenfolge

Wenn wir beginnen, ein Automatisierungsszenario zu planen, ist es wichtig zu verstehen, dass man, wie in Märchen, vom Einfachen zum Komplexen gehen muss. Stell dir vor, dein Skript ist ein Held, der eine Reise durch die Webseiten unternimmt. Jeder Schritt ist wohlüberlegt und genau abgestimmt, damit man nicht vom Weg abkommt.

Erstellung eines schrittweisen Automatisierungsszenarios

Man beginnt mit dem Erstellen eines Plans. Was möchtest du erreichen? Eine Seite laden, ein Formular ausfüllen, einen Button klicken? Wie man so sagt: "Wer nicht plant, plant den Misserfolg". Wir wollen keinen Misserfolg, also lasst uns die geplanten Schritte aufschreiben.

Python

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

# Erstellen wir eine Instanz des Treibers. Verwenden Sie den Treiber, der für Ihren Browser geeignet ist.
driver = webdriver.Chrome()

# Öffnen der Seite
driver.get('https://example.com/login')

# Ausfüllen des Login-Feldes
driver.find_element(By.NAME, 'username').send_keys('mein_benutzername')

# Ausfüllen des Passwort-Feldes
driver.find_element(By.NAME, 'password').send_keys('mein_sicheres_passwort')

# Klicken auf den Login-Button
driver.find_element(By.ID, 'login-button').click()

So geben wir den Rhythmus vor. Jeder Schritt des Szenarios wird nacheinander ausgeführt, damit dein Skript problemlos durch die Website navigieren kann.

Protokollierung der Ausführungsschritte

Wie jeder respektable Held sollte unser Skript Spuren hinterlassen, damit wir wissen, wo es war und was es gemacht hat. Logging ist wie das Tagebuch deines Skripts. Es hilft, die Ausführung der Schritte zu verfolgen und Fehler zu erkennen, falls etwas schiefgeht.

Python

import logging

# Logging einrichten
logging.basicConfig(level=logging.INFO)

# Beispiel für das Logging einer Aktion
logging.info("Seite wird geöffnet")
driver.get('https://example.com/login')

Logging hilft nicht nur beim Debugging, sondern gibt einem auch die Gewissheit, dass das Skript jeden Schritt ordnungsgemäß ausführt. Wenn plötzlich etwas schiefgeht, kannst du zurückgehen und sehen, wo es Probleme gab.

2. Organisation des Codes für Lesbarkeit und Modifikation

Wenn das Szenario komplexer wird, ist es wichtig, den Code übersichtlich zu halten. Stell dir ein Jubiläumsfest vor mit vielen Gästen und Gerichten: Wenn nicht alles an seinem Platz ist, entsteht Chaos. Bei uns ist das Chaos im Code.

Code-Struktur konfigurieren

Für Minimale Anstrengungen bei der Codeänderung muss der Code gut organisiert sein. Wie ein Socken-Sortierer, musst du alles ordnen. Nutze Funktionen, um sich wiederholende Aktionen in separate Blöcke auszulagern.

Python

def login_to_site(driver, username, password):
    logging.info("Logindaten eingeben")
    driver.find_element(By.NAME, 'username').send_keys(username)
    
    logging.info("Passwort eingeben")
    driver.find_element(By.NAME, 'password').send_keys(password)
    
    logging.info("Login-Button klicken")
    driver.find_element(By.ID, 'login-button').click()

# Funktion nutzen, um sich einzuloggen
login_to_site(driver, 'mein_benutzername', 'mein_sicheres_passwort')

Durch die Nutzung von Funktionen wird der Code strukturierter und ermöglicht einfache Änderungen, z. B. wenn sich die ID des Login-Buttons ändert, musst du dies nur in einer Funktion anpassen, nicht im gesamten Code.

3. Beispiel: Automatisierung des Einkaufsprozesses auf einer Website

Angenommen, wir müssen den Einkaufsprozess auf einer Website so automatisieren, dass folgende Schritte enthalten sind:

  1. Öffnen der Website und Einloggen.
  2. Wechseln zum Produktkatalog und Hinzufügen eines Produkts zum Warenkorb.
  3. Wechseln zum Warenkorb und Abschluss des Einkaufs.
Python

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

# Initialisierung des Treibers mit Einstellungen
def initialize_driver():
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)  # Implizite Wartezeit
    return driver

# Funktion zum Einloggen
def login(driver, username, password):
    driver.get("https://example.com")
    driver.find_element_by_id("username").send_keys(username)
    driver.find_element_by_id("password").send_keys(password)
    driver.find_element_by_id("login_button").click()

# Funktion zum Wechseln zum Produktkatalog und Hinzufügen eines Produkts zum Warenkorb
def add_product_to_cart(driver):
    driver.get("https://example.com/catalog")
    product = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CLASS_NAME, "product_item"))
    )
    product.click()

    add_to_cart_button = driver.find_element_by_id("add_to_cart")
    add_to_cart_button.click()

# Funktion zum Wechseln zum Warenkorb und Abschluss des Einkaufs
def checkout(driver):
    driver.get("https://example.com/cart")
    checkout_button = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, "checkout"))
    )
    checkout_button.click()

# Funktion zum Schließen des Treibers
def close_driver(driver):
    driver.quit()

# Hauptskript zur Ausführung der Aktionssequenz
def main():
    # Daten einrichten
    username = "meinbenutzername"
    password = "meinpasswort"
    
    # Initialisierung des Treibers
    driver = initialize_driver()
    
    try:
        # Einloggen auf der Website
        login(driver, username, password)
        
        # Wechseln zum Katalog und Produkt zum Warenkorb hinzufügen
        add_product_to_cart(driver)
        
        # Wechseln zum Warenkorb und Einkauf abschließen
        checkout(driver)
    
    finally:
        # Treiber schließen
        close_driver(driver)

# Hauptskript starten
main()

Funktionsbeschreibung

  1. initialize_driver() — Initialisiert den Webdriver. Aktiviert implizite Wartezeiten für alle Elemente und gibt ein Treiberobjekt zurück.
  2. login() — Führt den Login auf der Website durch. Akzeptiert die Parameter username und password, die zum Ausfüllen des Loginsformulars und Klicken des Buttons verwendet werden.
  3. add_product_to_cart() — Wechseln zum Katalog, Auswahl eines Produkts und Hinzufügen zum Warenkorb.
  4. checkout() — Wechseln zum Warenkorb und Kaufen abschließen.
  5. close_driver() — Beendet die Arbeit mit dem Treiber.
  6. main() — Hauptfunktion, die die Aktionssequenz steuert. Hier werden alle Schritte sowie die Login-Daten angegeben.

Vorteile dieses Ansatzes

  1. Lesbarkeit — Jeder Schritt ist in einer eigenen Funktion formuliert, was das Verständnis des Codes erleichtert.
  2. Wiederverwendbarkeit — Einzelne Funktionen können unabhängig von dem Hauptskript verwendet werden, z. B. für einzelne Aktionen auf der Website.
  3. Einfaches Testen — Jeder Schritt kann separat getestet werden, um sicherzustellen, dass alles korrekt funktioniert.
  4. Flexibilität — Bei Bedarf können andere Funktionen hinzugefügt oder die Reihenfolge der Aktionen in main() geändert werden.
1
Опрос
Optimierung von Selenium-Skripten,  37 уровень,  4 лекция
недоступен
Optimierung von Selenium-Skripten
Optimierung von Selenium-Skripten
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION