aplicaciones web generan 3 tipos diferentes de pop-ups; a saber,
1| JavaScript PopUps
2| Browser PopUps
3| Native OS PopUps [e.g., Windows Popup like Upload/Download]
En general, las ventanas emergentes de JavaScript se generan mediante el código de la aplicación web. Selenium proporciona una API para manejar estas ventanas emergentes de JavaScript, como Alert
.
Finalmente, la forma más sencilla de ignorar los archivos emergentes del navegador y descargar archivos se hace haciendo uso de los perfiles del navegador; Hay dos maneras de hacer esto:
- implican manualmente los cambios en las propiedades del navegador (o)
- propiedades del examinador de usar el perfil setPreference
Método1
Antes de empezar a trabajar con el pop -ups en los perfiles del navegador, asegúrese de que las opciones de descarga estén configuradas por defecto en Guardar archivo.
(Abre Firefox) Herramientas> Opciones> Aplicaciones
metodo2
hacer uso del siguiente fragmento de código y hacer cambios cuando sea necesario.
FirefoxProfile profile = new FirefoxProfile();
String path = "C:\\Test\\";
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", path);
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.manager.focusWhenStarting", false);
profile.setPreference("browser.download.useDownloadDir", true);
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.download.manager.closeWhenDone", true);
profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
profile.setPreference("pdfjs.disabled", true);
driver = new FirefoxDriver(profile);
me acaba de pasar la mejor parte de tres semanas de configurar mi propio servidor privado virtual Apache por primera vez (porque es un poco complicado correr selenio en alojamiento compartido), consiguiendo Firefox, Selenium y Python trabajan juntos, escribiendo el código de Python real para recorrer un sitio muy cargado de JavaScript, todo para descargar un archivo al final. Entonces me di cuenta de que no tenía idea de cómo acceder realmente al archivo descargado. Estoy muy contento de que hayas hecho la pregunta primero. –
AppleScript sería genial para eso, si Firefox tuviera un diccionario AppleScript decente. –
¿Puede alguien ayudarme [Pregunta en este sitio web] [1] [1]: http://stackoverflow.com/questions/27058053/selenium-python-webdriver-path-error-system- cant-find-the-path-specified –