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()
-
profile.set_preference('browser.download.dir', 'd:\\')
-
profile.set_preference('browser.download.folderList', 2)
-
profile.set_preference('browser.download.manager.showWhenStarting', False)
-
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')
-
driver = webdriver.Firefox(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()
但是借用此代码下载其他文件依然弹窗如何处理?
需要设置profile的文件类型:
对于不知道的类型,打开需要下载的链接,按F12至调试模式,点击Network,即可查看文件类型
做如下修改
-
# 文件类型是gzip,修改为gzip,或者再此基础增加即可
-
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/gzip')
-
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip,application/gzip')