python selenium firefox geckodriver firefox-profile

Descargue y guarde mĂșltiples archivos csv usando selenio y python desde una ventana emergente



selenium firefox (2)

Quiero descargar archivos csv del sitio https://clinicaltrials.gov/ct2/results?cond=&term=lomitapide&cntry1=&state1=&SearchAll=Search+all+studies&recrs= "Estoy usando Python y selenio script como se escribe a continuación: Pero me sale la excepción "ElementNotInteractableException" y no puedo descargar la página

from selenium import webdriver fp=webdriver.FirefoxProfile() fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv") browser = webdriver.Firefox(fp) browser.get("https://clinicaltrials.gov/ct2/results?cond=&term=lomitapide&cntry1=&state1=&SearchAll=Search+all+studies&recrs=") browser.find_element_by_id("submit-download-list")


Aqui esta la respuesta a tu pregunta:

El elemento al que se refirió como find_element_by_id("submit-download-list") realmente descarga un archivo PDF . Por lo tanto, para el beneficio de los futuros programadores y lectores de esta pregunta / publicación / tema / discusión, puede considerar cambiar el encabezado de su pregunta a Download and Save PDF file using selenium and python from popup

Aquí está el bloque de código para descargar y guardar el archivo PDF usando selenium y python desde la ventana emergente:

import os from selenium import webdriver from selenium.webdriver.firefox.firefox_binary import FirefoxBinary from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By binary = FirefoxBinary(''C://Program Files//Mozilla Firefox//firefox.exe'') newpath = ''C://home//DebanjanB'' if not os.path.exists(newpath): os.makedirs(newpath) profile = webdriver.FirefoxProfile() profile.set_preference("browser.download.dir",newpath) profile.set_preference("browser.download.folderList",2) profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/plain,text/x-csv,text/csv,application/vnd.ms-excel,application/csv,application/x-csv,text/csv,text/comma-separated-values,text/x-comma-separated-values,text/tab-separated-values,application/pdf") profile.set_preference("browser.download.manager.showWhenStarting",False) profile.set_preference("browser.helperApps.neverAsk.openFile","text/plain,text/x-csv,text/csv,application/vnd.ms-excel,application/csv,application/x-csv,text/csv,text/comma-separated-values,text/x-comma-separated-values,text/tab-separated-values,application/pdf") profile.set_preference("browser.helperApps.alwaysAsk.force", False) profile.set_preference("browser.download.manager.useWindow", False) profile.set_preference("browser.download.manager.focusWhenStarting", False) profile.set_preference("browser.helperApps.neverAsk.openFile", "") profile.set_preference("browser.download.manager.alertOnEXEOpen", False) profile.set_preference("browser.download.manager.showAlertOnComplete", False) profile.set_preference("browser.download.manager.closeWhenDone", True) profile.set_preference("pdfjs.disabled", True) caps = DesiredCapabilities.FIREFOX browser = webdriver.Firefox(firefox_profile=profile, capabilities=caps, firefox_binary=binary, executable_path=''C://Utility//BrowserDrivers//geckodriver.exe'') browser.maximize_window() browser.get("https://clinicaltrials.gov/ct2/results?cond=&term=lomitapide&cntry1=&state1=&SearchAll=Search+all+studies&recrs=") browser.find_element_by_id("save-list-link").click() download_link = WebDriverWait(browser, 10).until( EC.presence_of_element_located((By.XPATH, "//input[@id=''submit-download-list'']")) ) download_link.click()

Avíseme si esto responde a su pregunta.


Obtendrá la excepción ElementNotInteractableException porque el elemento será accesible una vez que se abra la ventana emergente. Falta hacer clic en el enlace de descarga que abre la ventana emergente. Por favor intenta lo siguiente,

from selenium import webdriver fp=webdriver.FirefoxProfile() fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv") browser = webdriver.Firefox(fp) browser.get("https://clinicaltrials.gov/ct2/results?cond=&term=lomitapide&cntry1=&state1=&SearchAll=Search+all+studies&recrs=") browser.find_element_by_id("save-list-link").click() browser.find_element_by_id("submit-download-list")