如何将可移植文档格式(PDF)内容类型添加到WebDriver打开的Firefox浏览器的应用程序中

时间:2018-05-10 04:43:31

标签: java selenium selenium-webdriver

在我正在工作的网页上有一个图标,点击此图标会弹出一个弹出窗口,弹出的PDF将会显示。 PDF显示在iframe内部。我的问题是每当我运行我的脚本和webdriver打开firefox浏览器。单击图标PDF实际上是自动下载而不是弹出显示。以下是浏览器首选项代码。我正在使用。

FirefoxProfile fprofile = new FirefoxProfile();
String path = System.getProperty("user.dir");
fprofile.setPreference("browser.download.dir", "D:\\AutomationFramework\\ResultFiles");
fprofile.setPreference("browser.download.folderList", 2);
fprofile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/x-excel, application/x-msexcel, application/excel, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/xls, text/csv, application/pdf, multipart/x-zip,application/zip,application/x-zip-compressed,application/x-compressed,image/jpeg,image/png,image/svg+xml");
fprofile.setPreference("browser.helperApps.neverAsk.openFile","application/xls, multipart/x-zip,application/zip,application/x-zip-compressed,application/x-compressed,image/jpeg,image/png,image/svg+xml");
fprofile.setPreference( "browser.download.manager.showWhenStarting", false );
fprofile.setPreference( "pdfjs.disabled", false );
fprofile.setPreference("plugin.scan.plid.all",false);
fprofile.setPreference("plugin.scan.Acrobat","99.0");       
fprofile.setPreference("plugin.disable_full_page_plugin_for_types","application/pdf;application/x-excel, application/x-msexcel, application/excel, application/vnd.ms-excel,application/xls, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

以下是WebDriver打开的Firefox浏览器的应用程序屏幕截图。我应该在首选项代码中添加什么,以便代替PDF自动下载,它应该在iframe中弹出显示。 我使用的是Firefox 46版。

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,Selenium Webdriver默认情况下不使用firefox.exe -p中的任何firefox配置文件。这意味着如果屏幕来自任何现有的配置文件,那就无关紧要了。

似乎缺少PDF的正确mime类型,但我用来访问现有的firefox个人资料,请参阅Automatically download pdf in firefox gecko driver using selenium java

您只需手动创建firefox配置文件,也可以手动修改处理PDF文件,并在代码中访问修改后的配置文件。