selenium+python自动化80-文件下载(不弹询问框)【转载】
转至博客:上海-悠悠
前言
上一篇是点弹出框上的按钮去保存文件,本篇介绍一种更加优雅的方法,加载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()
最新文章
- C#基础知识七之const和readonly关键字
- Android开发之JavaMail发送邮件(用户反馈)
- tomcat URL乱码问题
- sklearn 组合分类器
- XML标签
- 解决打印机报错:操作无法完成(错误0x00000709)。
- AE笔记
- GlusterFS创建volume失败的解决方法(* or a prefix of it is already part of a volume)
- 63. Unique Paths II
- linux下useradd -p 添加用户并设定密码
- 学习面试题Day02
- 用fiddler测试ip轮询
- Python爬虫(十)_正则表达式
- request.url 端口 错误
- python接口自动化(四)--接口测试工具介绍(详解)
- wireshark基础学习—第三部分wireshark的过滤器语法
- 复制命令(XCOPY)
- MT【238】内心轨迹
- day 27 多态 接口 类方法 静态方法 hashlib 摘要算法模块
- 关于ORA-00257: archiver error. Connect internal only, until freed 错误处理方法