python+selenium自动给下载某个文件

Posted wxstar8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python+selenium自动给下载某个文件相关的知识,希望对你有一定的参考价值。

转自:Selenium WebDrver3.0 自动化测试框架 实战指南

#encoding=utf-8
from selenium import webdriver
import unittest,time

class TestDemo(unittest.TestCase):
    def setUp(self):
        #self.driver= webdriver.Firefox()
        #创建一个FirefoxProfile的实例,用于存放自定义配置
        profile = webdriver.FirefoxProfile()
        profile.set_preference('browser.download.dir','d:\\\\iDownload')
        #将browser.download.folderList设置成2,表示将文件下载到指定路径
        #设置成0表示下载到桌面;设置为1表示下载到默认路径
        profile.set_preference('browser.download.folderList',2)
        #browser.helpApps.alwaysAsk.force对于未知的MIME类型文件会弹出窗口
        #让用户处理,默认值为True,设定为False表示不会记录打开未知MIME类型
        #文件方式
        profile.set_preference('browser.helpApps.alwaysAsk.force',False)
        #在开始下载时是否显示下载管理器
        profile.set_preference('browser.download.manager.showWhenStarting',False)
        #设定为False会把下载框进行隐藏
        profile.set_preference('browser.download.manager.useWindow',False)
        #默认值为True设置为false表示不获取焦点
        profile.set_preference('browser.download.manager.focusWhenStarting',False)
        #下载exe文件弹出警告,默认值为True ,设置为False则不会弹出警告框
        profile.set_preference('browser.download.manager.alertOnEXEOpen',False)
        #browser.helperApps.neverAsk.openFile表示直接打开下载文件,不显示确认框
        #默认值为空字符串,下行代码设定了多种文件的MIME类型
        #例如 application/exe,表示.exe文件
        #application/execl 表示Excel类型的文件
        profile.set_preference('browser.helperApps.neverAsk.openFile',"application/pdf")
        #对所给出的文件类型不在弹出提示框进行询问,直接保存在本地盘
        profile.set_preference('browser.helperApps.neverAsk.saveToDisk',
                               'application/zip,application/octet-stream')
        #browser.download.manager.showAlertOnComplete设定下载文件结束后是否
        #提示下载完成提示框
        profile.set_preference('browser.download.manager.showAlertOnComplete',False)
        #browser.download.manager.closeWhenDone 设定结束后是否自动关闭关闭下载框
        #默认值是 True,设置为False表示不关闭下载管理器
        profile.set_preference("browser.download.manager.closeWhenDone",False)

        #启动浏览器时,通过firefox_profile参数
        #将自动配置添加到FirefoxProfile对象中
        self.driver = webdriver.Firefox(firefox_profile=profile);


    def test_dataPicker(self):
        #访问webDriver驱动Firefox的驱动文件下载网址
        url = "https://github.com/mozilla/geckodriver/releases"
        self.driver.get(url)
        #选择下载ZIP类型文件,使用application/zip指代此类型文件
        self.driver.find_element_by_xpath("//strong[. = 'geckodriver-v0.16.1-win64.zip']").click()
        #等待加载下载文件
        time.sleep(100)

    def tearDown(self):
        self.driver.quit();


if __name__ == '__main__':
        unittest.main()


以上是关于python+selenium自动给下载某个文件的主要内容,如果未能解决你的问题,请参考以下文章

selenium3 无人工干预地自动下载某个文件

Python selenium 文件自动下载 (自动下载器)

Python+Selenium 自动化实现实例-实现文件下载

自动点击下载链接后,使用 Selenium、Firefox、Python 将下载的 EPS 文件保存到磁盘

selenium+python自动化79-文件下载(SendKeys)

selenium+python自动化98--文件下载弹窗处理(PyKeyboard)