Selenium findet Element nicht
Verfasst: Dienstag 20. Oktober 2020, 13:10
Ich möchte die aktuellen Corona-Falldaten eines Gesundheitsamts mittels Selenium laden, aber leider findet Selenium das entsprechende Element für den Download nicht. Der Hyperlink mit dem Text "Daten herunterladen" befindet sich unter dem Diagramm auf der entsprechenden Website.
Zu findendes HTML-Element:
Minimalbeispiel:
Dies liefert folgende Fehlermeldung: selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: .dw-data-link
Zu findendes HTML-Element:
Code: Alles auswählen
<a class="dw-data-link" aria-label="Daten herunterladen: Coronavirus: Entwicklung der Fallzahlen in Chemnitz"
href="data:application/octet-stream;charset=utf-8,Datum%2Cbest%C3%MoreAndMoreA19.10.2020%2C540%2C35%2C7" download="data-x97qw.csv">
Daten herunterladen
</a>
Code: Alles auswählen
import os
import time
from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")
browser = webdriver.Firefox(firefox_profile=fp)
url_chemnitz = "https://www.chemnitz.de/chemnitz/de/leben-in-chemnitz/gesundheit" \
"/gesundheitsschutz/coronavirus/index.html"
browser.get(url_chemnitz)
# Cookie-Banner
browser.find_element_by_class_name("cc_accept_all").click()
time.sleep(1)
browser.find_element_by_class_name("dw-data-link").click()
# browser.find_element_by_xpath('//a[@class="dw-data-link"]').click()
# browser.find_element_by_link_text("Daten herunterladen").click()