Descargue y guarde varios archivos csv utilizando Selenio y Python desde la ventana emergente

Quiero descargar archivos csv desde ” https://clinicaltrials.gov/ct2/results?cond=&term=lomitapide&cntry1=&state1=&SearchAll=Search+all+studies&recrs= ” sitio web. Estoy usando el script python and selenium como se describe a continuación: Pero Obtengo 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 te find_element_by_id("submit-download-list") como find_element_by_id("submit-download-list") realidad descarga un archivo PDF . Por lo tanto, para beneficio de los futuros progtwigdores y lectores de esta pregunta / publicación / hilo / discusión, puede considerar cambiar el encabezado de su pregunta para Download and Save PDF file using selenium and python from popup

Aquí está el bloque de código para descargar y guardar un archivo PDF usando selenium y python de 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() 

Déjame saber si esto responde a tu pregunta.

Está recibiendo 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")