Python Selenium 文件下载

Posted

tags:

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

Python Selenium 进UI自动化测试时都会遇到文件上传和下载的操作,下面介绍一下文件下载的操作

这里介绍使用FireFox浏览器进行文件下载的操作。

 

1、设置文件默认下载地址

如下图,firefox可以通过 在地址栏输入:about:config 或about:aupport 来查看或修改配置信息。 


技术分享

 

 技术分享

 

2、设置自动下载操作

  这里有两种解决方式

2.1、设置自动保存下载

 如下图勾选:以后自动采用相同的动作处理此类文件

这样下次在下载该类型的文件时就不会这样提醒了。

技术分享

 

2.2、修改设置可以在 浏览器选项中进行修改

如下图

技术分享

 

3、进行文件下载

 这样设置完成后,但是程序启动时打开的浏览器并没有按照这种配置打开。

 对比下图可以发现,通过webdriver打开的浏览器与手工打开的浏览器展示的不同,这是因为webdriver打开的浏览器没有按照浏览器设置的配置文件打开。如果想按照配置文件打开,在打开之前要先获取配置文件信息。

 技术分享

 

解决方法有两种,如下

 

 3.1、加入代码如下: 

      profile =  webdriver.FirefoxProfile(r"C:\\Users\\Skyyj\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\1rzh6139.default")

        self.driver = webdriver.Firefox(profile)

技术分享

 

 3.2、在代码中加入配置信息

 

通过about:config

通过%APPDATA%\\Mozilla\\Firefox\\Profiles\\找到默认配置  

找到mimeTypes.rdf目录,用其它方式打开,查找你刚刚保存的文件类型

mimeTypes.rdf 就存在上面 profile 的配置路径中

C:\\Users\\Skyyj\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\1rzh6139.default

查找fileExtensions="xlsx"

NC:value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
NC:editable="true"
NC:fileExtensions="xlsx"
NC:description="xlsx File">

技术分享

 

从文件中就可以得知我们需要的文件类型是什么


插入代码如下:

#profile =  webdriver.FirefoxProfile(r"C:\\Users\\Skyyj\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\1rzh6139.default")
        profile = webdriver.FirefoxProfile()

        ##设置成0代表下载到浏览器默认下载路径;设置成2则可以保存到指定目录
        profile.set_preference("browser.download.folderList", 2)
        #这里设置与否不影响,没有发现有什么影响。
        #profile.set_preference("browser.download.manager.showWhenStarting", False)
        profile.set_preference("browser.download.dir", r"c:\\Down")
        profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
        #这里设置与否没有发现有什么影响
        #profile.set_preference("browser.helperApps.alwaysAsk.force", False);
        self.driver = webdriver.Firefox(profile)

 

建议使用第二种,这样不需要设置浏览器,可移植性好。


以上是关于Python Selenium 文件下载的主要内容,如果未能解决你的问题,请参考以下文章

python selenium代码如何打包成.exe文件(Pyinstaller)

如何在 python 中使用 selenium 下载 pdf 文件

selenium+Python(处理html5的视频播放)

python3 selenium3 从框架实现代码学习selenium让你事半功倍

selenium10-python3部分代码复习

python常用代码片段总结