Selenium3自动化测试【30】文件下载
引言
Selenium也提供了文件下载的方案,以下载最新的Python版本为例,如图所示。单击【Download Python ..*】,下载最新的Python版本,图所示。
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类型,如表所示。
更多对应文件的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://ke.qq.com/course/3172187?tuin=9c43f38e - 《全栈测试系列视频》课程
地址:https://ke.qq.com/course/2525707?tuin=9c43f38e
测试学习路线如下
热销图书
图书京东、当当有售
京东: https://item.jd.com/12784287.html
当当: http://product.dangdang.com/29177828.html