场景

webdriver 允许我们设置默认的文件下载路径。也就是说文件会自动下载并且存在设置的那个目录中,下面以firefox及chrome为例

代码

Firefox下载

为了让Firefox浏览器能实现文件下载,需要通过FirefoxProfile()对其做一些设置。

browser.download.foladerList :设置成0代表下载到浏览器默认下载路径,设置成2则可以保存到指定的目录。

browser.download.manager.showWhenStarting  :是否显示开始:True为显示开始,Flase为不显示开始。

browser.download.dir :用于指定所下载文件的目录。

os.getcwd()函数不需要传递参数。用于返回当前的目录。

browser.helperApps.neverAsk.saveToDisk  :对所给文件类型不再弹出框进行询问。

#!/usr/bin/env python
# -*- codinfg:utf-8 -*-
'''
@author: Jeff LEE
@file: firefox下载文件.py
@time: 2018-09-26 16:07
@desc:
'''
from selenium import webdriver
import os,time fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",0)
fp.set_preference("browser.download.manager.showhenStarting",True)
fp.set_preference("browser.download.dir",os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","binary/octet-stream")#下载文件类型 driver = webdriver.Firefox(firefox_profile = fp)
driver.get("http://pypi.Python.org/pypi/selenium")
driver.find_element_by_xpath("//a[@id='files-tab']").click()
time.sleep(5) #选择下载文件
driver.find_element_by_xpath("//a[contains(@href,'.tar.gz')]").click()
time.sleep(30) driver.quit()

  

Chrome下载

download.default_directory:设置下载路径

profile.default_content_settings.popups:设置为0禁止弹出窗口

#!/usr/bin/env python
# -*- codinfg:utf-8 -*-
'''
@author: Jeff LEE
@file: chrome下载.py
@time: 2018-09-26 16:32
@desc:
'''
from selenium import webdriver
import time options = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'd:\\'}
options.add_experimental_option('prefs', prefs) driver = webdriver.Chrome(executable_path='F:\chromedriver\chromedriver.exe', chrome_options=options)
driver.get("http://pypi.Python.org/pypi/selenium")
driver.find_element_by_xpath("//a[@id='files-tab']").click()
time.sleep(5) #选择下载文件
driver.find_element_by_xpath("//a[contains(@href,'.tar.gz')]").click()
time.sleep(30)
driver.quit()

  

Python+Selenium学习--下载文件的更多相关文章

  1. Python+selenium之下载文件

    一.Firefox文件下载 Web容许我们设置默认的文件下载路劲,文件会自动下载并且存放在指定的目录下. from selenium import webdriver import os fp = w ...

  2. python爬虫之下载文件的方式总结以及程序实例

    python爬虫之下载文件的方式以及下载实例 目录 第一种方法:urlretrieve方法下载 第二种方法:request download 第三种方法:视频文件.大型文件下载 实战演示 第一种方法: ...

  3. 【python+selenium学习】Python常见错误之:IndentationError: unexpected indent

    初入python+selenium学习之路,总会遇到这样那样的问题.IndentationError: unexpected indent,这个坑我已经踏进数次了,索性记录下来.都知道Python对代 ...

  4. Python模块学习filecmp文件比较

    Python模块学习filecmp文件比较 filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单.python标准库还提供了difflib模块用于比较文件的内容.关于dif ...

  5. 《手把手教你》系列技巧篇(五十六)-java+ selenium自动化测试-下载文件-上篇(详细教程)

    1.简介 前边几篇文章讲解完如何上传文件,既然有上传,那么就可能会有下载文件.因此宏哥就接着讲解和分享一下:自动化测试下载文件.可能有的小伙伴或者童鞋们会觉得这不是很简单吗,还用你介绍和讲解啊,不说就 ...

  6. 《手把手教你》系列技巧篇(五十七)-java+ selenium自动化测试-下载文件-下篇(详细教程)

    1.简介 前边几篇文章讲解完如何上传文件,既然有上传,那么就可能会有下载文件.因此宏哥就接着讲解和分享一下:自动化测试下载文件.可能有的小伙伴或者童鞋们会觉得这不是很简单吗,还用你介绍和讲解啊,不说就 ...

  7. Python+Selenium学习笔记15 - 读取txt和csv文件

    读取txt的内容并用百度查找搜索 1 # coding = utf-8 2 3 from selenium import webdriver 4 import time 5 6 # 打开浏览器 7 d ...

  8. python从FTP下载文件

    #!/usr/bin/python # -*- coding: utf-8 -*- """ FTP常用操作 """ from ftplib ...

  9. Python+Selenium学习--自动化测试模型

    前言 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块.自动化测试框架在发展的过程中经历了几个阶段,模块驱动测试.数据驱动测试.对 ...

随机推荐

  1. js layer.js

    var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); 关闭弹出页 全屏弹出页面 layer.o ...

  2. Oracle数据库-sqlplus命令下出现SP2-0640: Not connected

    可以正常登录sqlplus,通过sys as sysdba 但在sql>输入语句,反馈如下 解决方法: sql>输入conn sys/as sysdba Enter password: c ...

  3. hibernate---session查询

    一.hql语句查询(适合多表) public class MyTest { public static void main(String[] args) { //查询集合 Session sessio ...

  4. 【java多线程】队列系统之说说队列Queue

    转载:http://benjaminwhx.com/2018/05/05/%E8%AF%B4%E8%AF%B4%E9%98%9F%E5%88%97Queue/ 1.简介 Queue(队列):一种特殊的 ...

  5. oracle-data-mining

    create user datamine identified by 123456 QUOTA UNLIMITED ON users; 然后在sqldeveloper工具界面-data miner中, ...

  6. 集合总结五(Hashtable的实现原理)

    一.概述 上一篇介绍了Java8的HashMap,接下来准备介绍一下Hashtable. Hashtable可以说已经具有一定的历史了,现在也很少使用到Hashtable了,更多的是使用HashMap ...

  7. 原生JS怎样给div添加链接

    html: <div href="http://www.atigege.com" target="_blank">个人网站</div> ...

  8. Guava 1:概览

    一.引言 都说java是开源的,但是除了JDK外,能坚持更新且被广泛认可的开源jar包实在是不可多得.其中最显眼的自然是guava了,背靠google自然底气十足,今天就来解开guava的面纱,初探一 ...

  9. 基于CRF工具的机器学习方法命名实体识别的过

    [转自百度文库] 基于CRF工具的机器学习方法命名实体识别的过程 | 浏览:226 | 更新:2014-04-11 09:32 这里只讲基本过程,不涉及具体实现,我也是初学者,想给其他初学者一些帮助, ...

  10. JS 60秒后重发送验证码

    //settime($("#getPhoneCode"),60); function settime($obj, time) { if (time == 0) { $obj.att ...