如何使用Selenium WebDriver下载APK文件

时间:2015-02-05 14:09:36

标签: java selenium selenium-webdriver webdriver webdriver-io

我正在尝试使用FireFox上的SeleniumWebDriver下载.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);

2 个答案:

答案 0 :(得分:0)

据我所知,没有简单的方法可以使用Selenium下载文件,因为浏览器使用原生对话框。请检查此link

AutoIT对我很有帮助,希望它对你也有帮助。

答案 1 :(得分:0)

在我的代码中,我只是有以下首选项,它工作正常。看起来你已经有了这些选择。

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

如果您在线搜索,人们将使用AutoIT和Robot类发布大量解决方案。我强烈建议你避免这样做。据我所知,AutoIT仅限Windows。我对机器人的经验并没有给出一致的结果。所以这两种解决方案都很脆弱。

此外,如果你关心支持多个浏览器,你必须在每个浏览器的基础上处理这个问题,而不仅仅是firefox。我建议您阅读this blog,其中介绍了如何在Selenium中下载文件以及您为什么不应该这样做。该博客的作者使用HTTP Get请求在Java中提供查询文件的解决方案。如果您想支持多个浏览器,这是解决此问题的最佳方法。