2014-01-19 78 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();