在网页上下载文件时,通常需要人为设定下载文件并选择保持路径,这样就无法实现完全自动的下载过程。下面实现基于firefox浏览器的全自动化文件下载操作:

#encoding=utf-8
from selenium import webdriver
import unittest, time class TestDemo(unittest.TestCase): def setUp(self):
# 创建一个FirefoxProfile实例,用于存放自定义配置
profile = webdriver.FirefoxProfile() #chrome是另外的设置方法
# 指定下载路径,默认只会自动创建一级目录,如果指定了
# 多级不存在的目录,将会下载到默认路径
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.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) # self.driver = webdriver.Ie(executable_path="c:\\IEDriverServer")
# 启动浏览器时,通过firefox_profile参数
# 将自动以配置添加到FirefoxProfile对象中
self.driver = webdriver.Firefox(executable_path="e:\\geckodriver",\
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-arm7hf.tar.gz"]').click()
# 等待加载下载文件
time.sleep(10) # 访问Python2.7.12文件下载页面,下载扩展名为msi文件
# 使用application/octet-stream来指明此类文件类型
url = "https://www.python.org/downloads/release/python-2712/"
self.driver.get(url)
# 找到Python2.7.12下载页面中链接文字为“Windows x86-64 MSI installer”
# 的链接页面元素,点击进行无人工干预的下载Python2.7.12解释器文件
self.driver.find_element_by_link_text\
("Windows x86-64 MSI installer").click()
# 等待文件下载完成,根据各自的网络带宽情况设定等待相应的时间
time.sleep(100) def tearDown(self):
self.driver.quit() if __name__ == '__main__':
unittest.main()

最新文章

  1. windows安装mysql5.7
  2. SPSS数据分析—广义线性模型
  3. 解决Ajax跨域问题:Origin xx is not allowed by Access-Control-Allow-Origin.
  4. C语言在单片机开发中的应用
  5. 《cracking the coding intreview》——链表
  6. order调用mdp
  7. 修改Android idc文件
  8. 同一台电脑同时装jdk1.8和jdk1.7
  9. 2016310Exp5 MSF基础应用
  10. linux audit审计(6)--audit永久生效的规则配置
  11. AAA游戏中雪的实现
  12. python调用caffe实现预测
  13. 用vs2015 编译 web app ionic
  14. sql点滴43—mysql允许用户远程登陆
  15. iOS UI基础-4.1应用程序管理 字典转Model
  16. django admin model使用技巧
  17. for 命令详解
  18. something about facebook token
  19. SpringCloud Config Bus webhook 只能刷新config server 不能刷新config client
  20. PCI DSS合规建设ASV扫描介绍

热门文章

  1. .NET CORE IIS 500.21
  2. eclipse中安装lombok插件
  3. 环境变量—《linux命令行与shell脚本编程大全》
  4. EF6 CodeFirst连接MySql 报nvarchar('max')错误解决办法
  5. selenium+python之自动换测试用例执行
  6. selenium-Python之上传文件
  7. UVA 177 PaperFolding 折纸痕 (分形,递归)
  8. python_95_类变量的作用及析构函数
  9. Mysql command line
  10. c#和Java中的接口