我们可以处理使用webdriver的使用火狐浏览器设置和Firefox配置文件设置在Firefox浏览器的下载弹出。
第1步:更新Firefox浏览器中的设置。
打开Firefox浏览器并导航到工具 - >选项 导航到应用程序。 将操作类型设置为PDF的“保存文件”。
第2步:使用FirefoxProfile
File downloadsDir = new File("");
// Set Preferences for FirefoxProfile.
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", downloadsDir.getAbsolutePath());
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk",
"application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.manager.focusWhenStarting", false);
profile.setPreference("browser.download.useDownloadDir", true);
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.download.manager.closeWhenDone", true);
profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
profile.setPreference("pdfjs.disabled", true);
// Initialize the FireFoxDriver instance.
FirefoxDriver webDriver = new FirefoxDriver(profile);
步骤3初始化FireFoxDriver:执行脚本
执行其点击下载PDF图标的脚本。
结果:将下载PDF文件并且不会显示下载弹出窗口。
我了解到,在你的情况下,你必须先切换()到弹出浏览器,然后点击Firefox浏览器中的下载图标。即使这样做后,PDF也不会立即下载。您必须进行一些设置才能帮助您直接下载PDF。这些设置由@zsbappa提及。 – Amol
另外你的问题是,Selenium抛出一个异常,因为没有找到元素。实际上,在查找元素*时没有任何挑战,但是您尚未切换到打开机密文档的弹出窗口。 – Amol
对不起,我意识到时删除了我的评论。你的回答解决了我的问题,谢谢我创建了一个机器人(java.awt),在它询问我是要保存还是打开文件后点击确定按钮,但它的工作方式像魅力。之后也必须确保switchTo.defaultContent()。我认为我不必通过更改首选项“browser.helperApps.neverAsk.saveToDisk”来创建机器人。 –