Selenium3自动化测试【30】文件下载

Selenium也提供了文件下载的方案,以下载最新的Python版本为例,如图所示。单击【Download Python ..*】,下载最新的Python版本,图所示。
11.jpg

1. FireFox浏览器

以FireFox浏览器为例,下载Python的最新版本。FireFox浏览器要实现文件下载,需要做些设置。
对于FireFox,需要我们设置其Profile:

  • browser.download.dir:指定下载路径;
  • browser.download.folderList:设置成 0 表示下载到桌面;设置成 1 表示下载到默认路径;设置成 2 表示使用自定义下载路径;
  • browser.download.manager.showWhenStarting:在开始下载时是否显示下载管理器;
  • browser.helperApps.neverAsk.saveToDisk:对所给出文件类型不再弹出框进行询问。

FireFox需要针对每种文件类型进行设置,这里需要我们查询对应文件的MIME类型,下载Python的最新版本,下载的文件类型为exe,因此类型为’application/octet-stream’。

常见文件的MIME类型,如表所示。
QQ图片20211228093408.png

更多对应文件的MIME类型,可以访问《MIME 参考手册》:
https://www.w3school.com.cn/media/media_mimeref.asp进行查看
通过FireFox浏览器,实现下载文件代码如下:

from selenium import webdriver
from time import sleep

profile = webdriver.FirefoxProfile()
# 设置成 2 表示使用自定义下载路径;设置成 0 表示下载到桌面;设置成 1 表示下载到默认路径
profile.set_preference("browser.download.folderList", 2)
#在开始下载时是否显示下载管理器
profile.set_preference("browser.download.manager.showWhenStarting", False)
# 设置默认的保存文件夹
profile.set_preference("browser.download.dir", r"D:\Demo") 
# 设置自动保存的文件类型,如果FireFox不能自动保存,一定是文件类型不对
# 对所给出文件类型,不再弹出框进行询问
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'application/octet-stream')

driver = webdriver.Firefox(FireFox_profile=profile)
driver.implicitly_wait(10)
# 访问Python下载页,下载最新版本的Python
driver.get('https://www.python.org/downloads/')
driver.maximize_window()
sleep(2)
# 单击【Download the latest version for Windows】按钮。
driver.find_element_by_xpath('//*[@id="touchnav-wrapper"]/header/div/div[2]/div/div[3]/p/a').click()

代码运行结束后,等待一段时间,可以在D盘Demo文件夹下看到下载的Python3.8.exe。

2.Chrome浏览器

Chrome浏览器实现文件下载,也需要做些设置,Options设置如下:

  • download.default_directory:设置下载路径;
  • profile.default_content_settings.popups:设置为 0 禁止弹出窗口。

通过Chrome浏览器,实现下载文件代码如下:

from selenium import webdriver
from time import sleep

options = webdriver.ChromeOptions()
prefs = {
    "download.prompt_for_download": False,
    'download.default_directory': 'D:\\Demo',    #设置下载目录
    "plugins.always_open_pdf_externally": True,
    'profile.default_content_settings.popups': 0,  #设置为0,禁止弹出窗口
}
options.add_experimental_option('prefs', prefs)

driver = webdriver.Chrome(chrome_options=options)

driver.get('https://www.python.org/downloads/')
driver.maximize_window()
sleep(2)
# 单击【Download the latest version for Windows】按钮。
driver.find_element_by_xpath('//*[@id="touchnav-wrapper"]/header/div/div[2]/div/div[3]/p/a').click()

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

如果你觉的文章读的不过瘾,可以查看详细的视频教程。
【2021】UI自动化测试:Selenium3自动化测试
(https://edu.csdn.net/course/detail/29953)
【测试全系列视频课程】请点击我哦…
(https://edu.csdn.net/agency/59)
学习路线如下
微信图片_20210816100905.png微信图片_202108161009051.png微信图片_202108161009052.png
图书京东、当当有售
京东: https://item.jd.com/12784287.html
当当: http://product.dangdang.com/29177828.html
0.9733767060093851.png
【如有测试学习路线上的疑问,可加WX:Leo-890】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leo_Eagle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值