Python 2.7 + Selenium 3.8 + Firefox 57 + MacOS Sierra:设置“browser.helperApps.neverAsk.openFile”后仍然出现下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 2.7 + Selenium 3.8 + Firefox 57 + MacOS Sierra:设置“browser.helperApps.neverAsk.openFile”后仍然出现下相关的知识,希望对你有一定的参考价值。
我使用Selenium 3.8,Firefox 57和Python 2.7从网页下载PDF文件时遇到困难。如果我没有手动将Firefox配置文件下载设置从“始终询问您保存文件的位置”更改到特定位置,则仍会显示下载弹出框,并且文件不会自动下载到指定文件夹。
我查了this StackO帖子,我不确定我错过了什么。我是否需要安装和设置木偶?我确实已经设置了geckodriver可执行文件。
这是我的代码:
profile = webdriver.FirefoxProfile("/Users/USERNAME/Library/Application Support/Firefox/Profiles/NAME")
profile.set_preference('browser.download.folderList', 2) # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference("browser.helperApps.neverAsk.openFile", 'application/pdf')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf')
profile.set_preference('browser.download.dir', download_to_location)
browser = webdriver.Firefox(profile)
download_to_location = "PATH_TO_FOLDER_WITHIN_DIRECTORY"
for race in races:
browser.get(race)
try:
[browser.find_element_by_xpath(lxp).click() for lxp in download_from_xpaths]
except:
pass
答案
要自动将PDF文件下载到指定的文件夹,您可以使用以下代码块:
newpath = "PATH_TO_FOLDER_WITHIN_DIRECTORY"
if not os.path.exists(newpath):
os.makedirs(newpath)
profile = webdriver.FirefoxProfile("/Users/USERNAME/Library/Application Support/Firefox/Profiles/NAME")
profile.set_preference("browser.download.dir",newpath);
profile.set_preference("browser.download.folderList",2);
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/plain,application/octet-stream,application/pdf,application/x-pdf,application/vnd.pdf");
profile.set_preference("browser.download.manager.showWhenStarting",False);
profile.set_preference("browser.helperApps.neverAsk.openFile","text/plain,application/octet-stream,application/pdf,application/x-pdf,application/vnd.pdf");
profile.set_preference("browser.helperApps.alwaysAsk.force", False);
profile.set_preference("browser.download.manager.useWindow", False);
profile.set_preference("browser.download.manager.focusWhenStarting", False);
profile.set_preference("browser.helperApps.neverAsk.openFile", "");
profile.set_preference("browser.download.manager.alertOnEXEOpen", False);
profile.set_preference("browser.download.manager.showAlertOnComplete", False);
profile.set_preference("browser.download.manager.closeWhenDone", True);
profile.set_preference("pdfjs.disabled", True);
browser = webdriver.Firefox(profile)
browser.get('Provide_URL_here')
以上是关于Python 2.7 + Selenium 3.8 + Firefox 57 + MacOS Sierra:设置“browser.helperApps.neverAsk.openFile”后仍然出现下的主要内容,如果未能解决你的问题,请参考以下文章
尝试通过 Chromedriver 2.34、Selenium 3.8 和 Python 3.6.2 登录富国银行时出错