允许Firefox使用Selenium自动下载文件。这可以用PhantomJS完成吗?

时间:2015-12-04 14:56:32

标签: python excel selenium

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)

fp.set_preference("browser.helperApps.alwaysAsk.force", False)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.download.manager.useWindow", False);
fp.set_preference("browser.download.manager.alertOnEXEOpen", False)

fp.set_preference("browser.download.folderList", 2);
fp.set_preference("browser.download.dir", '/home/ubuntu');
fp.set_preference("browser.download.manager.alertOnEXEOpen", False);
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv,application/vnd.ms-excel, application/force-download,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/msword, application/XLS;text/csv, application/XLSX;text/csv, 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")
fp.set_preference("browser.download.manager.showWhenStarting", False);
fp.set_preference("browser.download.manager.focusWhenStarting", False);  
fp.set_preference("browser.download.useDownloadDir", True);
fp.set_preference("browser.helperApps.alwaysAsk.force", False);
fp.set_preference("browser.download.manager.alertOnEXEOpen", False);
fp.set_preference("browser.download.manager.closeWhenDone", True);
fp.set_preference("browser.download.manager.showAlertOnComplete", False);
fp.set_preference("browser.download.manager.useWindow", False);
fp.set_preference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", False);
fp.set_preference("pdfjs.disabled", True);
driver = webdriver.Firefox(firefox_profile=fp)

这是我使用Selenium保存文件的代码。它适用于其他文件,但不适用于Excel。正如您所看到的enter code here,我已经包含了许多Excel文件格式,但这些格式也不起作用。

此外,PhantomJs有这种能力吗?我已经搜索过但没有找到任何确认PhantomJs的这种能力的东西。

感谢您的协助。

2 个答案:

答案 0 :(得分:1)

感谢您的回复。

我尝试使用text / csv,但这也没有用。我最终做的是安装httpFox,监控网络流量和活动。使用httpFox,我可以放大确切的MIME-TYPE,它是: fp.set_preference(" browser.helperApps.neverAsk.saveToDisk"," application / msexcel,text / csv")

我尝试了其他几种我在互联网上找到的Excel MIME-TYPES,但除了我使用的那个之外,它们都没有用。

Ť

答案 1 :(得分:0)

您可以在MIME类型中使用通配符,这可用于匹配所有Excel文件和所有其他文件。

fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv, application/*")

使用PhantomJS无法完成文件下载:https://github.com/ariya/phantomjs/issues/10052