for chromedriver chrome selenium selenium-chromedriver

chromedriver - selenium webdriver



Cómo deshabilitar ''Este tipo de archivo puede dañar su computadora'' emergente (4)

Estoy usando Selen Chromedriver para automatizar la aplicación web. En mi aplicación, necesito descargar archivos xml. Pero cuando descargo un archivo xml, aparece el mensaje emergente ''Este tipo de archivo puede dañar tu computadora''. Quiero deshabilitar esta ventana emergente usando Seledium Chromedriver y quiero que este tipo de archivos se descarguen siempre. ¿Cómo se puede hacer esto?

  • Versión de selenio: 2.47.1
  • Versión Chromedriver: 2.19

ACTUALIZACIÓN es un error de Chrome desde 2012.


El problema con los archivos XML me empezó a ocurrir a partir de Chrome 47.0.2526.80 m. Después de pasar quizás 6 horas intentando desactivar todas las opciones de seguridad posibles, probé un enfoque diferente.

Irónicamente, parece que al activar la opción Chrome "Protect you and your device from dangerous sites" elimina el mensaje "This type of file can harm your computer. Do you want to keep file.xml anyway?"

Estoy usando ''Ruby'' con ''Watir-Webdriver'' donde el código se ve así:

prefs = { ''safebrowsing'' => { ''enabled'' => true, } } b = Watir::Browser.new :chrome, :prefs => prefs

Al iniciar el navegador de esta manera, con la opción safebrowsing habilitada, descarga los archivos xml sin la advertencia del mensaje. El principio debería ser el mismo para Selenium con cualquier lenguaje de programación.

##### Editado: 13-04-2017

En la última versión de Google Chrome, la solución anterior no es suficiente. Además, es necesario iniciar el navegador con el siguiente interruptor:

--safebrowsing-disable-download-protection

Ahora, el código para iniciar el navegador se vería así:

b = Watir::Browser.new :chrome, :prefs => prefs, :switches => %w[--safebrowsing-disable-download-protection]))


Estoy publicando a continuación el código completo que hizo que la descarga del archivo funcionara para mí: Espero que ayude :-) Estoy usando Java-Selenium

System.setProperty("webdriver.chrome.driver", "C:/chromedriver/chromedriver.exe"); String downloadFilepath = "D:/MyDeskDownload"; HashMap<String, Object> chromePrefs = new HashMap<String, Object>(); chromePrefs.put("profile.default_content_settings.popups", 0); chromePrefs.put("download.default_directory", downloadFilepath); chromePrefs.put("safebrowsing.enabled", "true"); ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("prefs", chromePrefs); DesiredCapabilities cap = DesiredCapabilities.chrome(); cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); cap.setCapability(ChromeOptions.CAPABILITY, options); WebDriver driver = new ChromeDriver(cap);


La respuesta aceptada dejó de funcionar después de una actualización reciente de Chrome. Ahora debe utilizar los conmutadores de línea de comandos --safebrowsing-disable-extension-blacklist --safebrowsing-disable-download-protection y --safebrowsing-disable-download-protection . Esta es la configuración de WebdriverIO que funciona para mí:

var driver = require(''webdriverio''); var client = driver.remote({ desiredCapabilities: { browserName: ''chrome'', chromeOptions: { args: [ ''disable-extensions'', ''safebrowsing-disable-extension-blacklist'', ''safebrowsing-disable-download-protection'' ], prefs: { ''safebrowsing.enabled'': true } } } });

Tenga en cuenta que también deshabilito las extensiones, ya que generalmente interfieren con las pruebas automatizadas, pero esto no es estrictamente necesario para solucionar el problema con la descarga de archivos XML y JavaScript.

Encontré estos cambios leyendo esta lista . También puedes verlos en la fuente Chromium .


Seguir el código de Python funciona para mí

chromeOptions = webdriver.ChromeOptions() prefs = {''safebrowsing.enabled'': ''false''} chromeOptions.add_experimental_option("prefs", prefs) driver = webdriver.Chrome(chrome_options=chromeOptions)