¿Cómo cerrar el navegador después de completar una descarga?

¿Cómo cerrar el navegador después de completar la descarga?

from selenium import webdriver from selenium.webdriver.common.keys import Keys browser = webdriver.Firefox() browser.get(any_url) browser.find_elements_by_xpath('//input[@value="Download"]').click() # The program start downloading now. # HERE WHAT IS THE CODE? browser.quit() 

Quiero cerrar el navegador solo después de completar la descarga.

Puede utilizar el comando de pausa:

 pause ( waitTime ) 

Espere el tiempo especificado (en milisegundos)

http://release.seleniumhq.org/selenium-core/1.0/reference.html#pause

 from selenium import webdriver from selenium.webdriver.common.keys import Keys browser = webdriver.Firefox() browser.get(any_url) browser.find_elements_by_xpath('//input[@value="Download"]').click() # The program start downloading now. pause (10000) # pause/sleeps for 10 seconds browser.quit() 

Esta es una forma alternativa que hice en C #. Tal vez puedas usar la misma técnica y aplicarla en python.

 public static string GetRequest(string url, bool isBinary = false) { // binary is the file that will be downloaded // Here you perform asynchronous get request and download the binary // Python guide for GetRequest -> http://docs.python-requests.org/en/latest/user/quickstart/ } browser.webdriver.Firefox(); browser.get(any_url); elem = browser.findElement("locator"); GetRequest(elem.getAttribute('href'), true); // when this method is done, you expect the get request is done browser.quit(); 

Es posible que desee utilizar el siguiente fragmento de código justo antes de cerrar el navegador.

time.sleep(5) # Da tiempo para completar la tarea antes de cerrar el navegador. Puede boost los segundos a 10 o 15, básicamente la cantidad de tiempo requerido para la descarga, de lo contrario, irá al siguiente paso inmediatamente.

 browser.quit()