![](/img/trans.png)
[英]How can i handle download firefox dialogbox (accept download and cancel it ) + selenium java
[英]How can i cancel a download in firefox by using Selenium Webdriver?
我必須從網站上下載約500個文件。 它可以工作,但有時網絡無法正常工作,下載也無法完成。 我手動取消了它,但是我想在腳本中完成它。
有什么方法可以用Java中的Selenium API做到這一點?
硒下載無法取消,因為下載可以在后台進行(當前頁面上沒有可與之交互的javascript),也可以替換當前頁面(根本沒有javascript)。
相反,您可以通過檢查要單擊的鏈接來收集希望下載的URL,但不要在硒中單擊它們。 如果隨后使用常規Java請求來請求它們,則可以適當地處理它們(即添加超時)。 您可能需要從Selenium收集cookie才能提出下載請求。
您可以這樣獲得cookie:
webdriver.manage().getCookies()
請參閱文檔 。
您可以獲取如下鏈接的URL:
webdriver.findElement(...).getAttribute("href");
您可能必須將其從相對URL轉換為絕對URL。
然后,您可以像下面這樣用Java發出請求:
URL url = new URL(...);
URLConnection request = url.openConnection();
StringBuilder cookies = new StringBuilder();
for (Cookie cookie : webdriver.manage().getCookies()) {
if (cookies.length() > 0) {
cookies.append("; ");
}
cookies.append(cookie.getName())
.append("=")
.append(cookie.getValue());
}
request.setRequestProperty("Cookie", cookies.toString());
request.setConnectionTimeout(...);
request.setReadTimeout(...);
request.connect();
request.getInputStream(); // do stuff with the data from the input stream
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.