selenium自带了无人工干预实现下载功能的模块,下载时不需要弹窗点击确定下载
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| #!/usr/bin/env python3 # -*- coding: utf-8 -*-
from selenium import webdriver import time
class MacDownload():
def __init__(self): """初始化""" # 创建一个FirefoxProfile实例,用于存放自定义配置 profile = webdriver.FirefoxProfile() # 指定下载路径,默认自动创建一级目录 profile.set_preference('browser.download.dir', 'G:\idownload') # 将browser.download.folderLis设置为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.download.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.neverAsk.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)
# 启动浏览器,通过firfox_profile参数将自动配置添加到FirefoxProfile对象中sef.driver = webdriver.Firefox(firefox_profile=profile) self.driver = webdriver.Firefox(firefox_profile=profile)
def test_dataPicker(self): #访问WebDriver驱动firefox的驱动文件下载网址 # 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-win32.zip"]').click() # time.sleep(10)
#访问Python2.7.12文件下载页面,下载扩展名为msi的文件 #使用application/octet - stream来指明次文件类型 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(100)
self.driver.quit()
|