2015-02-05 43 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

相关问题