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

  

猜你喜欢

转载自www.cnblogs.com/aszeno/p/10371665.html