在Firefox中处理下载确认弹出/对话框

时间:2016-06-08 07:18:09

标签: selenium selenium-webdriver testng selenium-firefoxdriver

我有上传,压缩和下载pdf文件的测试。除下载部分外,一切正常。当我们点击下载时,我无法获得如何处理Firefox中的确认弹出/保存或打开文件对话框。我尝试修改firefox配置但仍然无法解决它。有人可以帮忙吗?

Table_J

1 个答案:

答案 0 :(得分:6)

您有很多不需要的偏好。所有你需要的是:

// Create a firefoxprofile for firefox specific settings
FirefoxProfile profile = new FirefoxProfile();

// Set the downloads folder
profile.setPreference("browser.download.dir", path/to/folder);

// Download files to the downloads folder
profile.setPreference("browser.download.folderList", 2);

// Don't show downloads window when download starts
profile.setPreference("browser.download.manager.showWhenStarting", False);

// Prevent file download dialog to be shown for certain MIME-types
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");

如果这不起作用,则应确保指定了正确的MIME类型。您可以在浏览器中监控网络并手动下载文件。应使用特定内容类型进行GET请求。确保已将内容类型添加到browser.helperApps.neverAsk.saveToDisk首选项中。

修改<!/强> 我刚刚检查了您指定的网站的MIME类型。您正在尝试自动保存application/pdf。但是,您正在下载MIME类型为application/octet-stream的文件。 你需要改变这个:

profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");

对此:

profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream");

如何查找MIME类型

在点击下载按钮之前打开firefox控制台并转到网络选项卡。 Firefox network tab

现在,如果点击下载按钮,您将看到已发出GET请求。如果您打开此请求,则可以看到响应的内容类型。这是您的MIME类型。 MIME-type