转至博客:上海-悠悠

前言

上一篇是点弹出框上的按钮去保存文件,本篇介绍一种更加优雅的方法,加载Firefox和Chrome的配置文件,不弹出询问框后台下载。

一、FirefoxProfile

1.点下载的时候,如下图,如果不想让它弹出这个询问框,可以加载firefox的配置文件隐藏起来

2.设置各项参数,参数可以通过在浏览器地址栏中输入about:config查看

3.FirefoxProfile的配置说明

-'browser.download.folderList':设置成0表示下载到桌面;设置成1表示下载到默认路径;设置成2则可以保存到指定目录;

- 'browser.download.dir' :“设置一个本地电脑路径:‘d:\\’ ”

- "browser.download.manager.showWhenStarting", False  是否显示下载进度框,下图所示(这个设置没生效)

- "browser.helperApps.neverAsk.saveToDisk", "application/octet-stream"  对所给出文件类型不再弹出框进行询问

二、文件类型

1.第四个参数文件类型这里一定要注意了,下载的不同文件类型,参数是不一样的,可以查阅:MIME 参考手册 http://www.w3school.com.cn/media/media_mimeref.asp

三、Firefox配置

# coding:utf-8

from selenium import webdriver

# 设置各项参数,参数可以通过在浏览器地址栏中输入about:config查看。
profile = webdriver.FirefoxProfile()

# 设置成0表示下载到桌面;设置成1表示下载到默认路径;设置成2则可以保存到指定目录;
profile.set_preference('browser.download.folderList', 2)

# 指定下载文件到你想放的路径
profile.set_preference('browser.download.dir', 'd:\\')

# 开始下载时候显示是否显示进度框 (这个设置目前没生效)
profile.set_preference("browser.download.manager.showWhenStarting", False)

# 对所给出文件类型不再弹出框进行询问
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")

driver = webdriver.Firefox(firefox_profile=profile)
# 打开有道云笔记
driver.get("http://note.youdao.com/")
# 点立即下载按钮
driver.find_element_by_id("download-btn").click()

四、Chrome配置

# coding:utf-8
from selenium import webdriver

profile = webdriver.ChromeOptions()

prefs = {'profile.default_content_settings.popups': 0,  # 设置为 0 禁止弹出窗口
         'download.default_directory': 'd:\\'}          # 指定下载路径

profile.add_experimental_option('prefs', prefs)

# executable_path这个是chromedriver的路径 如果设置过环境变量,此参数可以省略
chromedriver_path = "D:\\path\\chromedriver.exe"   # 自己本地电脑路径
driver = webdriver.Chrome(executable_path=chromedriver_path, chrome_options=profile)

# 打开有道云笔记
driver.get("http://note.youdao.com/")

# 点立即下载按钮
driver.find_element_by_id("download-btn").click()

最新文章

  1. C#基础知识七之const和readonly关键字
  2. Android开发之JavaMail发送邮件(用户反馈)
  3. tomcat URL乱码问题
  4. sklearn 组合分类器
  5. XML标签
  6. 解决打印机报错:操作无法完成(错误0x00000709)。
  7. AE笔记
  8. GlusterFS创建volume失败的解决方法(* or a prefix of it is already part of a volume)
  9. 63. Unique Paths II
  10. linux下useradd -p 添加用户并设定密码
  11. 学习面试题Day02
  12. 用fiddler测试ip轮询
  13. Python爬虫(十)_正则表达式
  14. request.url 端口 错误
  15. python接口自动化(四)--接口测试工具介绍(详解)
  16. wireshark基础学习—第三部分wireshark的过滤器语法
  17. 复制命令(XCOPY)
  18. MT【238】内心轨迹
  19. day 27 多态 接口 类方法 静态方法 hashlib 摘要算法模块
  20. 关于ORA-00257: archiver error. Connect internal only, until freed 错误处理方法

热门文章

  1. BZOJ Lydsy5月月赛 ADG题解
  2. Mysql Fabric实现学习笔记
  3. The driver has not received any packets from the server
  4. LOJ 模拟赛
  5. 使用Google的CDN JQuery库
  6. git使用笔记(十一)rebase
  7. 蓝桥杯 最短路 spfa
  8. 线程池 ------ linux C实现
  9. CMDB资产管理系统开发【day27】:cmdb API安全认证
  10. [技巧篇]04.使用PowerDesigner逆向生成