2014-01-19 5 views
1

Как закрыть браузер после завершения загрузки?Как сделать браузер закрытым после завершения загрузки?

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() 

Я хочу закрыть браузер только после завершения загрузки.

ответ

0

Вы можете использовать команду паузы:

pause (waitTime) 

Подождать определенное количество времени (в миллисекундах)

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() 
+0

Я хочу закрыть браузер только после завершения загрузки. @Tuga – 2964502

+0

не ваш код использует предположение, что загрузка файла завершена через 10 секунд? @Tuga – 2964502

+0

Я, увеличиваю его, если вам это нужно. –

0

Это альтернативный способ, которым я сделал на C# , Возможно, вы можете использовать ту же технику и применить ее на 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(); 

 Смежные вопросы

  • Нет связанных вопросов^_^