Selenium无法正确设置Firefox配置文件

3
我有以下代码片段。我希望PDF文件能自动保存到目录中。
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.dir'] = "//Users/mmuenster/www/pc_interface/pdf_downloads"
profile['browser.download.folderList'] = 2
profile['browser.helperApps.neverAsk.saveToDisk'] = 'application/pdf'

driver = Selenium::WebDriver.for :firefox, :profile => profile
driver.manage.window.maximize

然而,虽然Firefox中的"about:config"显示了这个选项已经被设置,但当我进入Firefox的首选项和应用程序时,pdf文件仍然被设置为"在Firefox中预览"。您有什么想法吗?谢谢。
2个回答

5
我找到了问题所在。我升级到了内置pdfjs附加组件的Firefox 19版本。解决方法是添加以下内容:
profile['pdfjs.disabled'] = true

这个有效!


从搜索中,我也找到了这个解决方案。我正在点击一个链接(<a>标签),并设置了下载属性。即使启用了查看器,这也可以绕过它并强制弹出下载对话框。我以为设置browser.helperApps.neverAsk.saveToDisk会避免对话框的出现,但它仍然不断弹出。只有在禁用pdf查看器后,对话框才被避免。这是一个令人沮丧的错误。 - Protongun

1
这是我使用的Python解决方案,现在已经禁用了上述建议的pdfjs。
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.download.dir", "~/somewhere/here/")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
fp.set_preference("pdfjs.disabled", True)
fp.update_preferences()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接