¿Existe algún tipo de API que pueda permitirme manipular un cuadro de diálogo de descarga de archivos en Firefox? (Quiero acceder al que aparece cuando el usuario hace algo, no iniciar uno yo mismo).
Lo que quiero hacer es acceder a este cuadro de diálogo desde Selenium (y tampoco estoy seguro de si el "modo privilegiado" de Selenium es suficiente para acceder a la interfaz de Chrome).
Respuestas:
No que yo sepa. Pero puede configurar Firefox para que inicie automáticamente la descarga y guarde el archivo en un lugar específico. Su prueba podría verificar que el archivo realmente llegó.
fuente
Tengo una solución para este problema, verifique el código:
fuente
Content-Disposition: attachment
. ¡Firefox siempre parece mostrar un cuadro de diálogo en este caso!setPreference("browser.helperApps.neverAsk.saveToDisk", "application/xls");
Me quedé atrapado con el mismo problema, pero encontré una solución. Lo hice de la misma manera que lo hizo este blog .
Por supuesto, esto era Java, lo he traducido a Python:
En mi ejemplo, era un archivo CSV. Pero cuando necesita más, se almacenan en el
~/.mozilla/$USER_PROFILE/mimeTypes.rdf
fuente
Las aplicaciones web generan 3 tipos diferentes de ventanas emergentes; a saber,
En general, las ventanas emergentes de JavaScript son generadas por 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 la ventana emergente del navegador y descargar archivos es haciendo uso de los perfiles del navegador; Hay dos formas de hacer esto:
Método 1
Antes de comenzar a trabajar con ventanas emergentes en los perfiles del navegador, asegúrese de que las opciones de descarga estén configuradas de forma predeterminada en Guardar archivo.
(Abra Firefox) Herramientas> Opciones> Aplicaciones
Método2
Utilice el siguiente fragmento y realice modificaciones cuando sea necesario.
fuente
Estaba enfrentando el mismo problema. En nuestra aplicación, la instancia de FireFox se creó pasando las capacidades deseadas de la siguiente manera
Basado en las sugerencias de otros, hice mis cambios como
Esto sirvió para el propósito, pero desafortunadamente mis otras pruebas de automatización comenzaron a fallar. Y la razón fue que eliminé las capacidades que se estaban pasando antes.
Un poco más navegando en la red y encontré una forma alternativa. Podemos establecer el perfil en sí en las Capacidades deseadas.
Entonces el nuevo código de trabajo parece
fuente
No lo sé, pero quizás podrías comprobar la fuente de uno de los complementos de descarga de Firefox.
Aquí está la fuente de uno que uso Download Statusbar .
fuente
La mayoría de los navegadores (en el mío, Firefox) seleccionan el botón Aceptar de forma predeterminada. Así que logré resolver esto usando el siguiente código. Básicamente, presiona Intro para usted y el archivo se descarga.
fuente
Tuve el mismo problema, no quería acceder a Save Dialogue.
El siguiente código puede ayudar:
Según el tipo de archivo que se está descargando, debe especificar los tipos de contenido.
Puede especificar varios tipos de contenido separados con ' ; '
p.ej:
fuente
En lugar de activar el cuadro de diálogo de descarga de archivos nativo así:
En su lugar, suelo hacer esto para omitir el diálogo de descarga de archivos nativo. De esta forma funciona en TODOS los navegadores:
Esto solo requiere que implemente un método
getFileFromURL
que use Apache HttpClient para descargar un archivo y devolverle una referencia de archivo.De manera similar, si está usando Selenide , funciona de la misma manera usando la
download()
función incorporada para manejar descargas de archivos.fuente
No he entendido su objetivo. ¿Quería que su prueba se descargara automáticamente el archivo cuando se ejecuta la prueba?
En el perfil personalizado, por primera vez ejecute la prueba manualmente y si aparece el cuadro de diálogo de descarga, configúrelo Guardarlo en el disco, también marque la casilla de verificación Realizar siempre esta acción, lo que garantizará que el archivo se descargue automáticamente la próxima vez que ejecute su prueba.
fuente
Además puedes agregar
Para eliminar la lista de archivos descargados que se muestra de forma predeterminada y cubre parte de la página web.
Mi configuración total es:
fuente