java - 如何使用FirefoxProfile通过Firefox浏览器自动下载?

标签 java selenium firefox selenium-webdriver firefox-profile

我正在使用selenium java,我需要下载pdf文件,我提到this , this还有this答案在这里,但似乎在我的情况下没有任何效果。 是否是由于设置了新的 firefox 驱动程序实例,即 System.setProperty("webdriver.firefox.bin", "D:\\FFF\\firefox.exe"); ?我被困在这里。但是,当我手动单击 MIME 对话框上的保存文件时,它会正确保存到我的自定义位置,我的下载链接代码也驻留在另一个 java 类中,并且位于另一个类中的下面的代码中,但我使用与此类中声明的相同的驱动程序, 下面是我的代码,

FirefoxProfile profile = new FirefoxProfile();
//Set Location to store files after downloading.
profile.setPreference("browser.download.folderList", 2);
profile.setPreference( "browser.download.manager.showWhenStarting", false );
profile.setPreference("browser.download.dir", "D:\\WebDriverDownloads");
profile.setPreference("pdfjs.disabled", true);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf"); 
System.setProperty("webdriver.firefox.bin", "D:\\FFF\\firefox.exe");
driver = new FirefoxDriver(profile);

最佳答案

以下代码块将 Firefox 配置文件 配置为通过 Java 绑定(bind)使用 Selenium下载保存 PDF 文件:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir", "C:\\Utility\\Downloads");
profile.setPreference("browser.download.folderList",2);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "text/plain,application/octet-stream,application/pdf,application/x-pdf,application/vnd.pdf");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.helperApps.neverAsk.openFile","text/plain,application/octet-stream,application/pdf,application/x-pdf,application/vnd.pdf");
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("browser.download.manager.focusWhenStarting", false);
profile.setPreference("browser.helperApps.neverAsk.openFile", "");
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.closeWhenDone", true);
profile.setPreference("pdfjs.disabled", true);
System.setProperty("webdriver.firefox.bin", "D:\\FFF\\firefox.exe");
WebDriver driver = new FirefoxDriver(profile);

关于java - 如何使用FirefoxProfile通过Firefox浏览器自动下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53891829/

相关文章:

java - 如何解码以 Base64 编码的 png 图像并在 ImageView 上查看它?

java - Macos Sierra 上的 jdbc 连接速度慢

javascript - 使用 autoIncrement 时删除 IndexedDB 中的项目

css - 背景位置距底部的偏移量 : opposite behaviour in Chrome and Firefox

java - 如何生成方法签名?

java - 如何引用接口(interface)在 Java 中实现的类类型?

python - 为什么给我这个错误 :TypeError: cannot pickle '_io.TextIOWrapper' object?

excel - 自动化错误。通过 Selenium 和 VBA 使用 Excel 的灾难性故障错误

angularjs - Protractor 0.16.1 e2e AngularJS-启动 Selenium 独立服务器…events.js :72 Error: spawn ENOENT

javascript - 如何修复干扰 Firefox 的默认 HTML5 视频播放器的功能