Ich versuche, eine Datei von einer Website mit Selenium und Python 3 herunterzuladen. Dazu muss eine Bestätigungsschaltfläche in einem Overlay-Fenster gedrückt werden. Das Überlagerungsfenster befindet sich nicht in einem iFrame - der HTML-Code wird einfach dynamisch hinzugefügt, wenn das Overlay angezeigt wird - aber Selenium kann die Schaltfläche nicht mit xPath finden und gibt NoSuchElementException
zurück. Fehle ich irgendetwas, das Selenium dazu bringen könnte, das Element nicht zu sehen, wie es in der Seitenquelle erscheint? Soweit ich das beurteilen kann, sollte Selen in der Lage sein, den Knopf ohne Problem zu lokalisieren.Selen kann Element im Hauptfenster nicht finden
#Initialize Driver
driver = webdriver.Safari()
cmd = "osascript -e 'tell application \"Safari\" to set bounds of front window to {0, 22, 1500, 1022}'"
os.system(cmd)
#Call up seach link
driver.get(data_url)
wait_a = WebDriverWait(driver, 15)
element = wait_a.until(EC.presence_of_element_located((By.ID, "md-input-3")))
#Initialize and send login information (defined above)
username = driver.find_element_by_id("md-input-3")
password = driver.find_element_by_id("md-input-6")
username.send_keys(crunchbase_username)
password.send_keys(crunchbase_password)
#Click login button
password.send_keys(Keys.ENTER)
#Wait for results page to finish loading
wait = WebDriverWait(driver, 15)
element = wait.until(EC.title_contains("Signals"))
time.sleep(2)
#Press Download Button
driver.find_element_by_xpath("//button[@aria-label='Export your results']").click()
time.sleep(2)
#Press csv button
driver.find_element_by_xpath("//button[@aria-label='Export to CSV']").click()
time.sleep(2)
#Confirm downlaod
driver.find_element_by_xpath("//*[@id='cdk-overlay-36']/md-dialog-container/confirmation-dialog/dialog-layout/div/md-dialog-actions/div/button[2]").click()
#Close driver
#driver.close()
Die Seite Quelle ist zu kompliziert und sehr stilisiert, so werde ich es hier nicht enthalten, sondern ein Screenshot von dem entsprechenden Abschnitt des Codes in Web-Inspektoren meines Browsers ist unten. Das Element, auf das ich klicken möchte, ist blau markiert.
schätzen ich Hilfe mit diesem.
Ist dies eine öffentlich verfügbare URL, die Sie teilen können? Welche Linie bildet das Obige ist die Problematik? Download bestätigen? Ist dies das hervorgehobene Element auf deinem Screenshot, das du finden möchtest? –
Sie haben nicht erwähnt, über welche "Bestätigungsschaltfläche". Wie wirkt ** zu kompliziert und stark stilisiert? ** "HTML" macht einen Unterschied beim Einfügen als "Formatierter Text" oder ein "Bild" – DebanjanB