#!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : zwy24zwy@163.com """ #无人工干预地自动下载某个文件 from selenium import webdriver import unittest,time class TestDemo(unittest.TestCase): def setUp(self): # 创建一个FirefoxProfile实例,用于存放自定义配置 profile = webdriver.FirefoxProfile() # 指定下载路径,默认只会自动创建一级目录,如果指定了多级不存在的目录,将会下载到默认路径 profile.set_preference('browser.download.dir','d:\iDownload') # 将browser.download.folderList设置为2,表示将文件下载到指定路径 # 设置成2表示使用自定义下载路径;设置成0表示下载到桌面;设置成1表示下载到默认路径 profile.set_preference('browser.download.folderList',2) # browser.helperApps.alwaysAsk.force对于未知的MIME类型文件会弹出窗口让用户处理,默认值为True,设定为False表示不会记录打开未知MIME类型文件的方式 profile.set_preference('browser.helperApps.alwaysAsk.force',False) # 在开始下载时是否显示下载管理器 profile.set_preference('browser.download.manager.showWhenStarting',False) # 设定为False会把下载框进行隐藏 profile.set_preference('browser.doenload.manager.useWindow',False) # 默认值为True,设定为False表示不获取焦点 profile.set_preference('browser.download.manager.focusWhenStarting',False) # 下载.exe文件弹出警告,默认值是True,设定为False则不会弹出警告框 profile.set_preference('browser.download.manager.alertOnEXEOpen',False) # browser.helperApps.neverAsk.openFile表示直接打开下载文件,不显示确认框 # 默认值为空字符串,下行代码行设定了多种文件的MIME类型 # 例如application/exe,表示.exe类型的文件,application/excel表示Excel类型的文件 profile.set_preference('browser.helperApps.neverAsk.openFile','application/pdf') # 对所给出文件类型不再弹出提示框进行询问,直接保存到本地磁盘
profile.set_preference('browser.helperApps.nerverAsk.saveToDisk',
'application/zip,application/octet-stream') # browser.download.manager.showAlertOnComplete设定下载文件结束后是否显示下载完成提示框,默认为True,设定为False表示下载完成后不显示下载完成提示框 profile.set_preference('browser.download.manager.showAlertOnComplete',False); # browser.download.manager.closeWhenDone设定下载结束后是否自动关闭下载框,默认为True,设定为False表示不关闭下载管理器 profile.set_preference('browser.download.manager.closeWhenDone',False) #启动浏览器时,通过firefox_profile参数 #将自动配置添加到FirefoxProfile对象中 self.driver = webdriver.Firefox(firefox_profile=profile) def test_dataPicker(self): url1 = 'https://github.com/mozilla/geckodriver/releases' self.driver.get(url1) #选择下载zip类型文件,使用application/zip指代此类型文件 self.driver.find_element_by_xpath
('//strong[.="geckodriver-v0.19.1-win64.zip"]').click() time.sleep(10) url = 'https://www.python.org/downloads/release/python-2712/' self.driver.get(url) self.driver.find_element_by_link_text('Windows x86-64 MSI installer').click() time.sleep(10) def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main()