webdriver允许我们设置默认的文件下载路径,也就是说,文件会自动下载并保存到设置的目录中
下面以Firefox浏览器为例:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time #time。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')
browser = webdriver.Firefox(firefox_profile=profile)
browser.get('http://www.yyyyyy.com') #跳转到下载页面
filelist=browser.find_elements_by_xpath('\\') #定位到文件列表中所有的文件
for file in filelist:
file.click() #点击保存文件
browser.download.dir:指定下载路径
browser.download.folderList:设置成 2 表示使用自定义下载路径;设置成 0 表示下载到桌面;设置成 1 表示下载到默认路径
browser.download.manager.showWhenStarting:在开始下载时是否显示下载管理器,ture表示显示,Flase表示不显示
browser.download.dir:用于指定所下载文件的目录。os.getcwd()函数不需要传递参数,用于返回当前目录
browser.helperApps.neverAsk.saveToDisk:对所给出文件类型不再弹出框进行询问
指定要下载页面的content-type值,“application/octet-stream”
这些参数的设置可以通过在Firefox浏览器输入地址:about:config进行设置
将所有设置信息在调用webdriver的Firefox()方法时作为参数传递给浏览器,Firefox浏览器在下载时就根据设置信息将文件下载到当前脚本的目录下
该例子只是针对Firefox,不懂的浏览器有不同的设置