Selenium findet Element nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
RetroSans
User
Beiträge: 1
Registriert: Dienstag 20. Oktober 2020, 12:16

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:

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>

Minimalbeispiel:

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()
Dies liefert folgende Fehlermeldung: selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: .dw-data-link
Antworten