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()

原文地址:https://www.cnblogs.com/jason89/p/9028779.html

时间: 2024-10-09 17:29:48

selenium+python自动化80-文件下载(不弹询问框)的相关文章

selenium+python自动化98--文件下载弹窗处理(PyKeyboard)

前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果. 之前讲过一篇Selenium2+python自动化75-非input文件上传(SendKeys)这个当时是基于python2写的. 最近很多小伙伴开始用python3了,这个SendKeys在python3上没法用,python3需要用PyUserIn

Pycharm+Selenium Python 自动化搭建

Pycharm+Selenium  自动化搭建 一,按照博客链接安装: (1)Pycharm+Selenium Python 自动化搭建 (2) 下载chrom对应版本chromdriver http://chromedriver.chromium.org/downloads (3)解压放在python37目录下 二,创建后代码 (1)代码: from selenium import webdriver options = webdriver.ChromeOptions() options.bi

【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ···························································································································

selenium+python自动化95-弹出框死活定位不到

前言 部分小伙伴学了selenium的alert后,就不管啥弹出框都去用alert,这是行不通的,看到弹出框,先要确定是不是alert,是才能用,不是的话肯定不能用. 有些弹出框是div层,这种跟平常定位方法一样 有些弹出框是嵌套的iframe层,这种切换iframe就可以了 有些弹出框比较坑,是嵌入的一个窗口,这就是本篇要讲的内容了. 遇到问题 1.最近有小伙伴遇到一个弹出框的定位,如下图这种,看似普通的一个弹出框 2.遇到这个问题做了以下尝试: 首先,这种肯定不是alert,所以不能用ale

selenium3+python自动化10-基本操作2(单选框、复选框、table定位)

一.前言 本次总结是对之前内容的扩充selenium3+python自动化6-基本操作总结(键盘.鼠标.select下拉框) ,包含单元框和复选框操作.table定位等内容. 二.单选框(radiobox)和复选框(checkbox)操作 1.认识单选框和复选框 html代码如下: <html> <head> <title>单选和复选</title> </head> <body> </form> <h4>单选:

selenium python (十二)下拉框的处理

#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #下拉框在web页面上非常常见,对于下拉框的处理采用二次定位的方法进行元素定位:首先定位到下拉框,然后再定位下拉框的具体元素from selenium import webdriverimport  osimport  time driver = webdriver.Firefox()file_path = 'file:///'+os.path.abspath('dro

页面自动化时安全证书弹出框的问题。

安全证书弹出框是网页自动化测试遇到的最头疼的问题了,没有之一.凡是能通过webdriver定位到并解决的问题都不是问题,显然安全证书弹出框不在此列.所以以前我都是在本地写自动化用例,然后启动的时候设置等待5秒,这5秒就是给我反应时间去点击证书的取消按钮.如今为了做成一个小框架,能和其他测试系统对接,并且让用户可以在其他系统通过调接口的方式并发完成多个系统页面的自动化,这个问题是不得不解决了. 幸好已经解决了,以chromeDriver为例,不是网上所谓的设置ChromeOptions,那根本就没

selenium+python自动化79-文件下载(SendKeys)【转载】

前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用SendKeys解决 一.下载场景 1.当点到下载按钮时候,会弹出如下页面 2.如果想点"保存文件"按钮,解决问题思路: - 先按TAB键,移动光标聚焦到保存按钮上 - 再按下ENTER键,这样就能保存了 二.代码实现 # coding:utf-8from selenium import w

selenium+python自动化77-autoit文件上传【转载】

前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了. 一.环境准备 1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/ 2.下载到本地后傻瓜式安装,安装完之后在应用程序找到这个Autoit v3 3.AutoIt里面几个菜