0

我正在尝试.apk在 FireFox 上使用 SeleniumWebDriver 下载文件。

我已将配置文件设置为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);

4

2 回答 2

0

据我所知,使用 Selenium 下载文件并不容易,因为浏览器使用本机对话框。检查此链接

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

于 2015-02-05T14:30:52.127 回答
0

在我的代码中,我只有以下偏好,并且工作正常。看起来你已经有了这些选项。

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

如果你在网上搜索,人们会发布一堆使用 AutoIT 和机器人类的解决方案。我强烈建议您避免这种情况。据我所知,AutoIT 只是 Windows。我对机器人的体验并没有给出一致的结果。所以这两种解决方案都是脆弱和脆弱的。

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

于 2015-02-05T16:16:10.553 回答