今天谈谈文件下载吧,很多人不会处理弹出的文件下载框,其实跟上传类似,可以用autoit和win32api解决,方法类似,可以看博主之前的文章 Python selenium —— 文件上传所有方法整理总结 ,今天这里博主主要想讲讲更漂亮的一种处理办法,那就是指定下载路径,不弹出弹框,直接下载到指定路径。

今天主要分享Firefox和Chrome的设置方法。

Firefox 文件下载

对于Firefox,需要我们设置其Profile:

  • browser.download.dir:指定下载路径
  • browser.download.folderList:设置成 2 表示使用自定义下载路径;设置成 0 表示下载到桌面;设置成 1 表示下载到默认路径
  • browser.download.manager.showWhenStarting:在开始下载时是否显示下载管理器
  • browser.helperApps.neverAsk.saveToDisk:对所给出文件类型不再弹出框进行询问

下面来个示例:

# -*- coding: utf-8 -*-from selenium import webdriver
from time import sleepprofile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.dir', 'd:\\')
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')driver = webdriver.Firefox(firefox_profile=profile)driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
sleep(3)
driver.quit()

Firefox需要针对每种文件类型进行设置,这里需要我们查询对应文件的MIME类型,可以用以下链接进行查询:MIME 参考手册

Chrome 文件下载

Chrome浏览器类似,设置其options:

  • download.default_directory:设置下载路径
  • profile.default_content_settings.popups:设置为 0 禁止弹出窗口

它的设置就简单多了,看个示例:

# -*- coding: utf-8 -*-from selenium import webdriver
from time import sleepoptions = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'd:\\'}
options.add_experimental_option('prefs', prefs)driver = webdriver.Chrome(executable_path='D:\\chromedriver.exe', chrome_options=options)
driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
sleep(3)
driver.quit()

看,文件下载也很简单吧。


更多关于python selenium的文章,请关注我的CSDN专栏:Python Selenium自动化测试详解

Python selenium —— 文件下载,不弹出窗口,直接下载到指定路径相关推荐

  1. [Selenium] 操作新弹出窗口之验证标题和内容

    1)验证标题 package com.learningselenium.normalwebdriver; import static org.junit.Assert.*; import java.u ...

  2. java selenium (十二) 操作弹出窗口

    selenium 中如何处理弹出窗口 阅读目录 原理 在代码里, 通过         Set<String> allWindowsId = driver.getWindowHandles ...

  3. 禁用弹出窗口阻止程序

    2019独角兽企业重金招聘Python工程师标准>>> 禁用弹出窗口阻止程序 方法一:通过浏览器设置 方法二:通过写注册表信息设置 具体代码如下: Windows Registry ...

  4. 问题解决:取消Mac下Karabiner-Elements开机时弹出窗口、用Capslock切换中英文输入法、外接机械键盘 option 和 cmd 互换

    一.取消Karabiner-Elements开机时弹出窗口 Karabiner-Elements下载地址:https://karabiner-elements.pqrs.org/ Karabiner是 ...

  5. Matlab弹出窗口定义

    文件打开操作 使用uigetfile函数直接在弹出窗口选择打开 打开指定格式的文件 uigetfile('.m') %选择.m文件 多种后缀文件进行选择性的打开 [filename,pathname] ...

  6. java关闭安全警告_如何禁用Java“安全警告”弹出窗口?

    将文本文档放在名为deployment.properties c:\ windows \ sun \ Java \ deployment \ deployment.properties的位置 尽管Ja ...

  7. python selenium 处理弹窗_python 让selenium(webdriver ) 不打开浏览器(弹出窗口)运行(静默模式启动)...

    什么是 Headless Chrome Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序.相比于现代浏览 ...

  8. python sendkeys用法_使用python中的sendkeys上载文件将打开一个文件选择器弹出窗口...

    需要自动化的组件是antd-upload.在https://ant.design/components/upload/ --> Can be found here 上载按钮可见,但输入的&quo ...

  9. python的窗口处理模块_Python tkinter模块弹出窗口及传值回到主窗口操作详解

    本文实例讲述了Python tkinter模块弹出窗口及传值回到主窗口操作.分享给大家供大家参考,具体如下: 有些时候,我们需要使用弹出窗口,对程序的运行参数进行设置.有两种选择 一.标准窗口 如果只 ...

最新文章

  1. 《从缺陷中学习C/C++》——6.15 试图产生的指针很可能不存在
  2. python3 推荐使用super调用base类方法
  3. linux 查询内存和核心数,Linux下查看操作系统信息、内存情况及cpu信息:cpu个数、核心数、线程数...
  4. Android 性能优化——绘制优化
  5. SAP MM 采购订单收货被取消了还是不能增加新的delivery cost!
  6. bootstrap-table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)
  7. Flex移动皮肤开发(一)
  8. Web APIs概念详解(附图解)
  9. Javascript实现图片幻灯片
  10. 牛逼,我的单片机固件被人破解了
  11. C#软件注册与注册机
  12. python爬虫——40行代码爬取「笔趣看」全部小说
  13. ​​【接口篇 / Wan】(7.0) ❀ 01. 配置 ADSL 拨号上网 ❀ FortiGate 防火墙
  14. angular整合环信webIM
  15. HTML5手机页面触屏滑动上下翻页特效
  16. Python plot() 画图标记 marker
  17. AutoFac在WinForm中的使用
  18. 安装SQL Server 2000时出现“以前的某个程序安装已在安装……”
  19. 机器人运动仿真和3D建模可视化
  20. 用注册表修改Windows系统的MAC地址

热门文章

  1. arcgis不闭合线转面_如何将ArcGIS不闭合线转化为面:编辑拓扑
  2. android手机版tcp或者udp通讯测试工具,可以用于工业设备或者系统开发时间测试tcp或是udp连接通讯是否正常工作
  3. matlab的交通灯信号识别,交通灯识别系统.docx
  4. Python_00000
  5. 搭建大型网站使用的技术架构
  6. 【设计模式】模板模式实现报表模板
  7. 最速下降法 c 语言程序,工程優化方法中的“最速下降法”和“DFP擬牛頓法”的 C 語言實現...
  8. 2021届 大疆一面 嵌入式软件
  9. 计算机关机速度,高手教你摆平Win7关机速度慢的技巧
  10. Builder模式到底好在哪里