zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    用户控件的缓存技术之二【共三篇】
    .NET获取URL的各种方式及其区别
    图片上传封装类【包括图片上传和缩略图上传】.NET
    .NET抓取数据范例 抓取页面上所有的链接
    JQuery基础 学习的一些例子以及手册
    呵呵呵呵。。。系统还原了,终于可以用IE登陆百度了
    不用框架使用ajax 纯js使用ajax post,get范例及其区别
    用ashx还是aspx写ajax响应
    repeater绑定数组、哈希表、字典 ArrayList/HashTable,Dictionary为datasource
    Access数据库访问类 帮助类
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/7657436.html
Copyright © 2011-2022 走看看