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

      

  • 相关阅读:
    Thinphp+nginx配置伪静态
    Potyczki Algorythmiczne 2013
    接下来一段时间会对大家进行网络通信的魔鬼训练理解socket
    项目中怎样做技术选型
    面试官问我:你做事仔细吗?
    【编程一生】2021年总结数据可视化技巧
    一个反直觉的sql
    CURD系统怎么做出技术含量惊艳面试官
    深入理解函数式编程
    历史文章分类汇总
  • 原文地址:https://www.cnblogs.com/aszeno/p/10371665.html
Copyright © 2020-2023  润新知