Wie scrollt man in Selenium zu einem Element?

Das Scrollen zu einem Element in Selenium kann mit der Methode execute_script durchgeführt werden, die Ihnen ermöglicht, JavaScript innerhalb Ihrer Browsersitzung auszuführen. Dieser Ansatz bietet die Flexibilität, zu jedem WebElement zu scrollen, das von verschiedenen Selenium-Selektoren identifiziert wird. Hier finden Sie eine Schritt-für-Schritt-Anleitung, wie Sie mit Selenium zu einem bestimmten Element scrollen können, einschließlich eines erweiterten Codebeispiels, das zu einer Webseite navigiert und zu einem bestimmten Element scrollt.

Wie man in Selenium zu einem Element scrollt

Um zu einem Element zu scrollen, müssen Sie Folgendes tun:

  1. Initialisieren Sie eine WebDriver-Instanz.
  2. Navigieren Sie zur Zielwebseite.
  3. Suchen Sie das WebElement, zu dem Sie scrollen möchten, indem Sie einen geeigneten Selektor verwenden.
  4. Verwenden Sie die Methode execute_script , um einen JavaScript-Befehl auszuführen, der zu dem Element scrollt.

Nachstehend finden Sie einen Beispielcode, der zu einer Webseite navigiert und zu einem bestimmten Element (z. B. einem Element mit einer bestimmten ID) scrollt.

Beispielcode

      from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager # Richten Sie Chrome-Optionen ein chrome_options = Options() chrome_options.add_argument("--start-maximized") # Initialisieren Sie WebDriver driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options) # Zur gewünschten Webseite navigieren driver.get("http://www.scrapingbee.com") # JavaScript-Code zum Scrollen zu einem bestimmten Element js_code = "arguments[0].scrollIntoView({behavior: 'smooth', block: 'center'});" # Suchen Sie das WebElement, zu dem Sie scrollen möchten element = driver.find_element(By.ID, 'footer') # Führen Sie den JavaScript-Code aus, um zum Element zu scrollen driver.execute_script(js_code, element) # Optional können Sie eine Verzögerung hinzufügen, um das Scrollen zu beobachten import time time.sleep(2) # Schließen Sie den WebDriver driver.quit() 

    

Erläuterung

  1. Chrome-Optionen einrichten: Konfiguriert Chrome so, dass es maximiert gestartet wird, um die Sichtbarkeit während des Skriptlaufs zu verbessern.
  2. Initialisierung des WebDriver: Verwendet webdriver_manager zur automatischen Verwaltung der ChromeDriver-Binärdatei, was die Einrichtung vereinfacht.
  3. Zur Webseite navigieren: Leitet den WebDriver zur angegebenen URL.
  4. JavaScript-Code: Die Methode scrollIntoView wurde um Optionen zum flüssigen Scrollen und Zentrieren des Elements im Ansichtsfenster erweitert.
  5. WebElement lokalisieren: Verwendet find_element mit By.ID, um das Element anzuvisieren, zu dem gescrollt werden soll.
  6. JavaScript ausführen: Führt den JavaScript-Code aus und übergibt das anvisierte WebElement als Argument.
  7. Verzögerung (optional): Fügt eine Verzögerung für die Beobachtung der Scroll-Aktion hinzu.
  8. WebDriver schließen: Schließt die Browsersitzung.

Tipps für effizientes Scrollen in Selenium

  • Flüssiges Scrollen: Verwendung {behavior: 'smooth'} sorgt für einen flüssigeres Scrollen.
  • Element-Positionierung{block: 'center'} kann auf Start oder Ende eingestellt werden, je nachdem, wo das Element im Ansichtsfenster erscheinen soll.
  • Elementidentifizierung: Verwenden Sie verschiedene Selektoren (By.IDBy.CLASS_NAMEBy.CSS_SELECTOR usw.), um Elemente genau zu bestimmen.

Wenn Sie diese Anleitung befolgen, können Sie mit Selenium effizient zu jedem Element auf einer Webseite scrollen und Ihre Web-Automatisierungsskripte robuster und benutzerfreundlicher gestalten. Sie sind sich nicht sicher, ob Sie Selenium oder Puppeteer verwenden sollten? Sehen Sie sich diesen Vergleichsartikelan.

Sind Sie bereit, loszulegen?