Selenium Webdriver: ¿Cómo descargar un archivo PDF con Python?

Estoy utilizando Selenium Webdriver para automatizar la descarga de varios archivos PDF. Obtengo la ventana de vista previa de PDF (ver más abajo), y ahora me gustaría descargar el archivo. ¿Cómo puedo lograr esto usando Google Chrome como navegador?

Caja de diálogo

Puede descargar el pdf (PDF Embeded pdf y Normal pdf ) de la web usando selenium.

 from selenium import webdriver download_dir = "C:\\Users\\omprakashpk\\Documents" # for linux/*nix, download_dir="/usr/Public" options = webdriver.ChromeOptions() profile = {"plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}], # Disable Chrome's PDF Viewer "download.default_directory": download_dir , "download.extensions_to_open": "applications/pdf"} options.add_experimental_option("prefs", profile) driver = webdriver.Chrome('C:\\chromedriver\\chromedriver_2_32.exe', chrome_options=options) # Optional argument, if not specified will search path. driver.get(`pdf_url`) 

Se descargará y guardará el pdf en el directorio especificado. Cambie la ubicación de download_dir y la ubicación del chrome driver location según su conveniencia.

Puede descargar el controlador de cromo desde aquí .

¡Espero eso ayude!

Tengo el mismo problema debido a que Chrome en la última versión abre todos los PDF con PDFServlet dentro del navegador y no inicia el proceso de descarga directamente.

En la última versión de Chrome, puedes ir a Chrome: plugins y desactivar Chrome PDF Viewer, pero estas opciones no existen ahora.

Intento obtener una ruta de inserción y src pdf e bash usar ac # HttpWebClientRequest para intentar descargar, pero esto no funciona para mí.

Intento ver la documentación para intentar encontrar un parámetro que deshabilite esta función de PDF, pero no la encuentro.

Prueba este código, funcionó para mí.

 options = webdriver.ChromeOptions() options.add_experimental_option('prefs', { "download.default_directory": "C:/Users/XXXX/Desktop", #Change default directory for downloads "download.prompt_for_download": False, #To auto download the file "download.directory_upgrade": True, "plugins.always_open_pdf_externally": True #It will not show PDF directly in chrome }) self.driver = webdriver.Chrome(options=options