2015-02-05 91 views
0

我正嘗試在FireFox上使用SeleniumWebDriver下載.apk文件。如何使用Selenium WebDriver下載APK文件

我已經配置文件設置爲auto-save,但是當我點擊.apk文件下載鏈接,它會打開下載確認對話框

我應該如何繼續前進?

這裏是我的代碼:

FirefoxProfile fprofile = new FirefoxProfile(); 
 
fprofile.setPreference("browser.download.folderList", 2); 
 
fprofile.setPreference("browser.download.manager.showWhenStarting", false); 
 
fprofile.setPreference("browser.download.dir", "D:\\WebDriverdownloads"); 
 
fprofile.setPreference("browser.helperApps.alwaysAsk.force", false); 
 
fprofile.setPreference("browser.helperApps.neverAsk.saveToDisk", 
 
"application/vnd.android.package-archive;"); //MIME Type for APK files 
 
driver = new FirefoxDriver(fprofile);

回答

0

據我所知,是因爲瀏覽器使用本地對話框下載使用Selenium文件沒有簡單的方法。檢查這個link

AutoIT對我很有幫助,希望它對您也有幫助。

+1

AutoIT僅適用於Windows。一旦你在mac上打開你的測試,他們將失敗 – 2015-02-06 12:06:16

0

在我的代碼中,我只是有以下偏好,它工作正常。看起來你已經有了這些選項。

"browser.download.folderList": 2, 
    "browser.download.dir": "/Users/nilesh", 
    "browser.helperApps.neverAsk.saveToDisk": "text/csv" 

如果您在網上搜索,人們會使用AutoIT和Robot類發佈一堆解決方案。我強烈建議你避免這種情況。根據我的瞭解,AutoIT僅適用於Windows。我對Robot的經驗並沒有給出一致的結果。所以這兩種解決方案都是脆弱和脆弱的。

此外,如果你關心支持多個瀏覽器,你將不得不在每個瀏覽器的基礎上處理這個問題,而不僅僅是Firefox。我建議你閱讀this blog,它描述瞭如何在Selenium中下載文件,以及爲什麼你不應該這樣做。博客的作者提供了Java中使用HTTP Get請求查詢文件的解決方案。如果您想支持多個瀏覽器,那麼這是處理此問題的最佳方法。

+0

感謝您的回覆。我同意你,事實上** CSV TXT PDF和XLS文件完美地下載**與我的代碼,但是當我做同樣的** APK時,它不工作**。 – 2015-02-07 15:01:47

+0

@BSCSStudent很高興幫助。如果有意義,請接受答案。 – nilesh 2015-02-07 15:14:50

+0

先生,我說我的代碼正在使用CSV等格式,但我需要下載.APK文件,它是**不工作** ...! – 2015-02-07 19:21:09

相關問題