zoukankan      html  css  js  c++  java
  • webdriver高级应用 -无人工干预地自动下载某个文件

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2019/2/13 18:59
    # @Author  : solo
    # @Site    : 
    # @File    : webdriver_11_6.py
    # @Software: PyCharm
    
    #无人工干预地自动下载某个文件
    #目的:在网页上下载时,通常需要人为设定下载文件并选择保存路径,这样就无法实现完全自动下载的工程。以下示例是基于firefox浏览器的
    #全自动化文件下载操作,脚本执行后会将文件保存到指定目录的文件夹下。
    
    from selenium import webdriver
    import unittest,time
    
    class TestDemo(unittest.TestCase):
    
        def setUp(self):
            #创建一个firefoxprofile示例,用于存放自定义配置
            profile = webdriver.FirefoxProfile()
            #指定下载路径,默认只会自动创建一级目录,如果指定了
            #多级不存在的目录,将会下载到默认路径
            profile.set_preference('browser.download.dir','d:\iDownload')
            #将browser.download.folderList设置为2,表示将文件下载到指定路径
            #设置成2表示使用自定义下载路径;
            #设置成0表示下载到桌面,设置成1表示下载到默认路径
    
            profile.set_preference('browser.download.folderList',2)
    
            #'browser.helperApps.alwaysAsk.force对于未知的MIME类型文件会弹出窗口
            #让用户处理,默认值为True,设定为False表示不会记录打开未知MIME类型文件的方法
            profile.set_preference('browser.helperApps.alwaysAsk.force',False)
    
            #在开始下载时是否显示下载管理器
            profile.set_preference("browser.download.manage.showWhenStaring",False)
            #设定为False会把下载框进行隐藏
            profile.set_preference("browser.download.manager.useWindow",False)
            #默认值为True,设定为False表示不获取焦点
            profile.set_preference("browser.download.manager.alertonEXEopen",False)
    
            #
            #
            #
            profile.set_preference("browser.helperApps.neverAsk.openfile",
                                   "application/pdf")
    
            profile.set_preference("browser.helperApps.neverAsk.saveToDisk",
                                   "application/zip,application/octet-stream")
    
            profile.set_preference("browser.download.manager.showAlertonComplete",False)
    
            profile.set_preference("browser.download.manager.closeWhenDone",False)
    
    
            self.driver = webdriver.Firefox(executable_path="C:\webdriver_firefox_driver",
                                            firefox_profile=profile)
    
        def test_dataPicker(self):
                #访问webdriver的驱动firefox的驱动文件下载网址
                urll = "https://github.com/mozilla/geckodriver/releases"
                self.driver.get(urll)
    
                self.driver.find_element_by_xpath
                    ('//strong[.="geckodriver -v0.11.1 - win64.zip"]').click()
    
                #等待文件加载
                time.sleep(10)
    
                url = "https://www.python.org/downloads/release/python - 2712/"
                self.driver.get(url)
    
                self.driver.find_element_by_link_text
                    ("Windows x86 -64 MSI installer").click()
    
                time.sleep(100)
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == "__main__":
        unittest.main()
    

      

  • 相关阅读:
    程序员都遇到过哪些误解?
    云原生系列5 容器化日志之EFK
    云原生系列4 批量定时更新本地代码库
    云原生系列3 pod核心字段
    云原生系列2 部署你的第一个k8s应用
    云原生系列1 pod基础
    项目总结二:使用分布式存储读写分离功能应要注意的问题
    项目总结一:HttpClient DelegatingHandler管道扩展 生命周期问题
    Java 反编译工具的使用与对比分析
    如何使用 Github Actions 自动抓取每日必应壁纸?
  • 原文地址:https://www.cnblogs.com/aszeno/p/10371665.html
Copyright © 2011-2022 走看看