我使用selenium webdriver使用firefox進行一些下載。目前我的腳本在下載完成後等待特定的時間,然後關閉Firefox。我想知道是否有辦法配置Firefox自動關閉下載完成?或者使用selenium webdriver,我可以檢查下載是否已完成?我不想使用任何添加,因爲它可能會在我的腳本中添加依賴項。我不能使用wget/curl等來下載文件。 在此先感謝下載完成後會自動關閉firefox
回答
什麼伊格納西奧·孔特雷拉斯說。輪詢下載路徑可能是最好的(最健壯的)解決方案。
替代#1:
使用FirefoxProfile
與Download Statusbar插件。它有一個方便的選項,「在窗口關閉後繼續在下載管理器中下載」(或類似的東西),這樣它將保持Firefox在後臺運行,直到下載完成。
替代#2:
下載使用直接的this文件(或任何其他類似的webdriver友好的工具)......或者this,如果你能。這將徹底消除Firefox的進程。
我不確定這是否會工作,但你有沒有考慮探索Firefox的下載位置?輪詢它,直到您看到下載已完成。
如果我沒有錯,當它被下載的文件時,應該有一個額外的擴展名爲.part的文件。
是這樣的(僞):
...
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();
希望它可以幫助
Thanks Ignacio。但問題是,在給定的時間,可以運行多個firefoxes實例。多個Firefox實例可以下載到相同的位置。 –
好吧,您可以確定每個實例都會輪詢下載位置,以查找各自下載的.part文件(如果實例是從分開的java運行代碼實例中引發的)。 或者如果所有這些都是從同一個程序執行的,您可以創建一個文件名數組,以便您可以在需要時拋出一個唯一的輪詢驅動程序來關閉每個firefox實例。 –
您可以使用硒的webdriver API的WebDriverWait類使用下面的代碼做投票:
(new WebDriverWait(driver, 180, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return !downloadedFilePart.exists();
}
});
上面的代碼檢查用。第三部分的擴展程序文件下載每10秒鐘直到下載完成或3分鐘後超時。
- 1. 我如何執行在Firefox自動關閉,當下載完成後
- 2. Firefox 4自動完成=關閉功能
- 3. 自動完成功能不會關閉
- 4. 關閉自動完成
- 5. 關閉自動完成
- 6. Firefox會自動關閉形式馬上
- 7. WebPage完成加載後關閉ProgressDialog
- 8. 關閉Firefox中文本字段的自動完成功能
- 9. 我怎樣才能下載後關閉窗口完成
- 10. 如何在完成下載後關閉瀏覽器?
- 11. 在用C#下載完成後關閉對話框在用watin
- 12. Nodejs,redis自動完成,關閉
- 13. vim-rails關閉自動完成
- 14. 爲ComboBox關閉自動完成功能
- 15. 自動完成關閉錯誤
- 16. Jquery自動完成關閉功能
- 17. Xcode中關閉自動完成問題
- 18. 自動完成/填充不關閉
- 19. 暫時關閉打字自動完成
- 20. 關閉KendoUI自動完成上的HtmlEncode
- 21. 如何關閉Swiftype自動完成?
- 22. Swift AVPlayerItem完成後關閉
- 23. 自動完成不會關閉? HTML文本框/密碼字段
- 24. 如何關閉側面點擊自動完成下拉菜單
- 25. MPMoviePlayerController在完成播放後不會自動關閉電影(ios 6)
- 26. 關閉後刷新自動完成新的瀏覽器功能
- 27. 防止emacs在完成後自動關閉窗口
- 28. 所有作業完成後自動關閉Google DataProc羣集
- 29. 如何在c中自動完成後關閉outlook#
- 30. 當youtube video id完成後,fancybox如何自動關閉?
就像數據點一樣,指向下載狀態欄的鏈接指向一個較舊的插件。在安裝它之前(因爲我沒有太在意),賽門鐵克因爲它的網頁充斥着廣告軟件而大吃一驚。更新後的鏈接:https://addons.mozilla.org/en-us/firefox/addon/download-status-bar/ –