我知道之前已经问过这个问题,但在尝试建议后,我不断获得操作系统下载文件窗口。我想要做的是下载pdf文件。我已经设置了浏览器首选项,但尽管如此,它并没有抑制操作系统窗口。
以下是我编写的代码段:
firefoxProfile = webdriver.FirefoxProfile()
firefoxProfile.set_preference('browser.download.folderList', 2)
firefoxProfile.set_preference('browser.download.manager.showWhenStarting', False)
firefoxProfile.set_preference('browser.download.dir', '/media/pinku/Pinku')
firefoxProfile.set_preference('browser.helperApps.alwaysAsk.force', False)
firefoxProfile.set_preference('browser.helperApps.neverAsk.saveToDisk',
'application/octet-stream')
self.driver = webdriver.Firefox(firefoxProfile)
我正在使用Ubuntu 12.10,Firefox,webdriver,python
答案 0 :(得分:3)
我认为您可能错误地使用了MIME类型。试试这个
firefoxProfile.set_preference('browser.helperApps.neverAsk.saveToDisk',
'application/pdf,application/x-pdf')
可以找到有关pdf MIME类型的讨论here当您尝试下载pdf时,应该检查firefox看到的mime类型。我可能会错误地设置服务器!
旁注:每当这个话题出现时(通过selenium webdriver下载文件)我强烈建议不要这样做!请阅读文章"How To Download Files With Selenium And Why You Shouldn’t"进行推理。基本上它建议使用其他方法来测试直接下载。
更新:我没有将两个mime类型放在一个字符串中,之前错误。我还添加了关于检查服务器实际提供的内容的建议。
答案 1 :(得分:2)
我一直在使用firefox 24.03(这是ESR版本) 这个版本的firefox引入了pdfjs。这将在浏览器中打开PDF。
所以你需要压制它。 这是代码/ firefox配置文件,对我有用。
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir","C:\\temp")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/pdf")
fp.set_preference("plugin.disable_full_page_plugin_for_types", "application/pdf")
fp.set_preference("pdfjs.disabled", True)
driver = webdriver.Firefox(firefox_profile=fp)
使用此个人资料,我的所有pdf下载都会转到“C:\ temp”
答案 2 :(得分:0)
我遇到了类似的问题,因为服务器返回的mime类型是“text / plain”而不是“text / csv”。
这对我有用(使用watir-webdriver):
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.folderList'] = 2 # custom location
profile['browser.download.dir'] = download_directory
profile['browser.helperApps.neverAsk.saveToDisk'] = "text/plain"
browser = Watir::Browser.new :firefox, :profile => profile
有关使用watir-webdriver下载的更多信息:http://watirwebdriver.com/browser-downloads/