【问题标题】:Selenium does not download file as configuredSelenium 不按配置下载文件
【发布时间】:2023-03-16 14:05:01
【问题描述】:

我正在尝试配置 selenium 以将文件下载到我的下载目录,但似乎它总是下载到不同的文件夹。

这是我用来配置 firefox webdriver 的代码:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.helperApps.neverAsk.saveToDisk",
  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("pdfjs.disabled", true);
profile.setAcceptUntrustedCertificates(true);
profile.setAssumeUntrustedCertificateIssuer(false);
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.tabs.remote.autostart.2", false);
profile.setPreference("browser.download.dir", System.getProperty("user.home") + "\\Downloads\\");

然而,每次我运行测试时,我的测试都失败了,因为它找不到文件,我在日志中得到了这个:

1505401302370   addons.productaddons    INFO    Completed downloading document
1505401303224   addons.productaddons    INFO    downloadXHR File download. status=200
1505401303226   addons.productaddons    INFO    Downloaded file will be saved to C:\Users\MYUSER\AppData\Local\Temp\tmpaddon

我错过了什么吗?

[更新]

我正在使用 geckodriver v0.18.0 和 firefox 55.0.3 版

【问题讨论】:

  • 如果您使用 Syso(System.getProperty("user.home"));,您的控制台会返回什么?
  • C:\Users\MYUSER
  • 下载文件夹已经存在了吗?
  • 是的。下载到此文件夹适用于 Google Chrome,但不适用于 Firefox
  • 您可以删除其他选项并单独尝试吗?profile.setPreference("browser.download.dir", System.getProperty("user.home") + "\\Downloads\\") ;

标签: java selenium firefox download


【解决方案1】:

browser.download.dir 只是您需要设置以配置下载文件夹的功能之一。还有两个:

browser.download.downloadDir browser.download.defaultFolder

填写这两个,您可以使用 firefox/gecko 作为驱动程序将文件下载到您想要的任何文件夹。不要忘记设置一个没有权限限制的文件夹。

根据您的情况填写示例:

profile.setPreference("browser.download.dir", System.getProperty("user.home") + "\\Downloads\\");
profile.setPreference("browser.download.downloadDir", System.getProperty("user.home") + "\\Downloads\\");
profile.setPreference("browser.download.defaultFolder", System.getProperty("user.home") + "\\Downloads\\");

【讨论】:

  • 配置了3个还是下载不了。
  • 您确定允许该程序将文件保存在该文件夹中吗?此外,您可以尝试使用现有的 firefox 配置文件(将其作为文件加载)并配置其下载文件夹,以检查是否有效
  • 如果您使用的是这些库的过时版本,您可能会遇到此链接解释的相同错误:github.com/mozilla/geckodriver/issues/236
  • 是的,我确定。它适用于谷歌浏览器。但不知何故,当我用 Firefox 运行它时,它失败了。
  • 好的。 @AlexanderRumanovsk,我要求您更新您的问题,添加您的 Firefox 驱动程序版本、Selenium 版本以及您如何创建 FirefoxDriver 对象。我希望通过这些信息我或其他用户能够帮助您
猜你喜欢
  • 2020-08-20
  • 2016-07-18
  • 2016-03-27
  • 2019-03-15
  • 2017-02-04
  • 2014-11-25
  • 2022-06-29
  • 2019-10-28
  • 2018-06-21
相关资源
最近更新 更多