Firefox 文件下载
对于Firefox,需要我们设置其Profile:
browser.download.dir
:指定下载路径browser.download.folderList
:设置成 2 表示使用自定义下载路径;设置成 0 表示下载到桌面;设置成 1 表示下载到默认路径browser.download.manager.showWhenStarting
:在开始下载时是否显示下载管理器browser.helperApps.neverAsk.saveToDisk
:对所给出文件类型不再弹出框进行询问
# -*- coding: utf-8 -*-
from selenium import webdriver
from time import sleep
profile = webdriver.FirefoxProfile()
# # 设置成 2 表示使用自定义下载路径;设置成 0 表示下载到桌面;设置成 1 表示下载到默认路径
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)#在开始下载时是否显示下载管理器
profile.set_preference("browser.download.dir", r"C:\Users\Administrator\Desktop\1") # 设置默认的保存文件夹
# 设置自动保存的文件类型,如果firefox不能自动保存,一定是文件类型不对
# 对所给出文件类型不再弹出框进行询问
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'application/zip')
'''
其他可选文件类型:
application/a-gzip
application/x-gzip,
application/zip,
application/x-gtar,
text/plain,
application/x-compressed,
application/octet-stream,
application/pdf
'''
# # 下面这些参数是从别的地方看到的
# profile.set_preference("browser.helperApps.alwaysAsk.force", False)
# profile.set_preference("browser.download.manager.alertOnEXEOpen", False)
# profile.set_preference("browser.download.manager.focusWhenStarting", False)
# profile.set_preference("browser.download.useDownloadDir", True)
# profile.set_preference("browser.download.manager.alertOnEXEOpen", False)
# profile.set_preference("browser.download.manager.closeWhenDone", True)
# profile.set_preference("browser.download.manager.showAlertOnComplete", False)
# profile.set_preference("browser.download.manager.useWindow", False) #
# # disable Firefox's built-in PDF viewer
# profile.set_preference("pdfjs.disabled", True)
executable_path='../source/geckodriver-v0.23.0-win64/geckodriver.exe'
driver = webdriver.Firefox(executable_path=executable_path,firefox_profile=profile)
driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
sleep(3)
driver.quit()
Firefox需要针对每种文件类型进行设置,这里需要我们查询对应文件的MIME类型,可以用以下链接进行查询:MIME 参考手册
Chrome 文件下载
Chrome浏览器类似,设置其options:
download.default_directory
:设置下载路径profile.default_content_settings.popups
:设置为 0 禁止弹出窗口
它的设置就简单多了,看个示例:
# -*- coding: utf-8 -*-
import time
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {
"download.prompt_for_download": False,
'download.default_directory': 'C:/Users/Administrator/Desktop/1/',#下载目录
"plugins.always_open_pdf_externally": True,
'profile.default_content_settings.popups': 0,#设置为0,禁止弹出窗口
# 'profile.default_content_setting_values.images': 2,#禁止图片加载
}
options.add_experimental_option('prefs', prefs)
executable_path = "../source/chromedriver_win2.43/chromedriver.exe"
driver = webdriver.Chrome(executable_path=executable_path, chrome_options=options)
driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
time.sleep(3)
driver.quit()
参考:https://blog.csdn.net/huilan_same/article/details/52789954