Estoy usando selenium webdriver para realizar algunas descargas con Firefox. En este momento, mi script espera un momento específico después de que la descarga se haya iniciado y luego cierra el navegador. Quiero saber si hay una forma de configurar Firefox para cerrar automáticamente las finalizaciones de descarga. O usando Selenium webdriver, ¿puedo verificar si la descarga se ha completado? No quiero usar ningún complemento, ya que podría agregar dependencia en mi script. No puedo usar wget/curl, etc. para descargar los archivos. Gracias de antemanocerrar automáticamente Firefox cuando se complete la descarga
Respuesta
Lo dijo Ignacio Contreras. Sondear la ruta de descarga es posiblemente la mejor (la más robusta) solución.
Alternativa # 1:
Utilice un FirefoxProfile
con Download Statusbar complemento. Tiene una opción práctica para "Continuar descargando en el Administrador de descargas después de que se ha cerrado la ventana" (o algo muy similar), de modo que mantendrá a Firefox ejecutándose en segundo plano hasta que la descarga haya finalizado.
Alternativa # 2:
Descargar el archivo directamente a través this (o cualquier otra herramienta similar WebDriver ambiente) ... o this, si es posible. Eso cortará totalmente a Firefox del proceso.
No estoy seguro si esto funcionaría, pero ¿ha considerado explorar a través de Firefox la ubicación de descarga? sondeándolo hasta que vea que la descarga se ha completado.
Si no me equivoco, cuando el archivo haya sido descargado, debe haber un archivo adicional con la extensión .part.
Algo como esto (pseudocódigo):
...
WebDriver poller = new FirefoxDriver()
poller.get("path to download folder");
while ("file with .part extension is present") {
// Wait/sleep some time
// Refresh poller
}
// close downloading firefox instance
firefox.quit();
// close the polling instance
poller.quit();
creo que sirve
Gracias Ignacio. Pero el problema es que, en un momento dado, se pueden ejecutar varias instancias de Firefox. Las múltiples instancias de Firefox pueden descargarse en la misma ubicación. –
bueno, haces que cada una de estas instancias sondee la ubicación de descarga buscando el archivo .part de sus respectivas descargas (si las instancias se lanzan desde instancias separadas de código de ejecución Java). O si todos se ejecutan desde el mismo programa, puede crear una matriz de nombres de archivos para que pueda lanzar un controlador de sondeo único que cierra cada instancia de Firefox cuando sea necesario. –
Puede utilizar la clase WebDriverWait de selenio WebDriver API para hacer el sondeo utilizando el siguiente código:
(new WebDriverWait(driver, 180, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return !downloadedFilePart.exists();
}
});
El anterior código comprueba archivo con .part programa de extensión se descarga por cada 10 segundos hasta que descarga completado o se agotó el tiempo de espera después de 3 minutos.
- 1. jQuery comprobar cuando se completa la descarga de PDF
- 2. Extensión de Firefox para cerrar la ventana de Firefox
- 3. Cómo cerrar UIActionSheet automáticamente
- 4. Cerrar automáticamente el búfer cero
- 5. Diferencia Firefox - Chrome cuando se codifica diéresis
- 6. ¿Hay un método UIViewController que se llame automáticamente cuando la aplicación se mueve al fondo?
- 7. Cerrar automáticamente Redmine tarea con cometer comentario
- 8. ¿Cómo forzar una descarga de PDF automáticamente?
- 9. ¿Cómo cerrar conexiones inactivas en PostgreSQL automáticamente?
- 10. ¿Cómo cerrar un ChromeDriver cuando se ejecuta en Grid?
- 11. ¿Cómo cambiar a TFS automáticamente cuando se carga la solución?
- 12. ¿Un programa C++ libera automáticamente la memoria cuando se bloquea?
- 13. ¿Bloqueo de Javascript hasta que se complete la precarga de la imagen?
- 14. ¿Qué evento atrapar para cerrar la aplicación?
- 15. cómo hacer que el registro aumente automáticamente y se complete en Excel?
- 16. Detecta cuando un módulo de Python se descarga
- 17. WPF DataTemplate restablece algunas propiedades de dependencia cuando se descarga
- 18. Cerrar una conexión en el método de "descarga"
- 19. ¿Se cierra automáticamente una SqlConnection cuando se cierra una aplicación?
- 20. ¿Dónde almacena Maven la fuente y javadocs cuando se descarga mediante el complemento Eclipse
- 21. WebBrowser.Print() espera hasta que se complete. .NET
- 22. Acceso al diálogo de descarga de archivos en Firefox
- 23. ¿Cómo hago un instalador dmg que se abrirá automáticamente después de la descarga?
- 24. El teclado OnScreen se abre automáticamente cuando se inicia Actividad
- 25. ¿Se abre automáticamente el terminal cuando se depura en Xcode?
- 26. ¿Complemento de Firefox que descarga una página web completa?
- 27. Cerrar infowindow cuando se hace clic en otro marcador
- 28. ¿Qué evento de JS se activa cuando Chrome obtiene el archivo de descarga?
- 29. Al depurar una aplicación ASP.NET, ¿cómo finalizar la sesión de depuración cuando se cierra Firefox?
- 30. Perdiendo extensión cuando uso FileReference descarga
Al igual que un punto de datos, el enlace a la barra de estado de descarga apunta a un complemento anterior. Al instalarlo (porque no estaba prestando demasiada atención), Symantec se asusta porque su página está cargada de adware. Enlace actualizado: https://addons.mozilla.org/en-us/firefox/addon/download-status-bar/ –