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

精讲视频

如果你觉的文章读的不过瘾,可以查看详细的视频教程。

测试学习路线如下

微信图片_20210816100905.png微信图片_202108161009051.png微信图片_202108161009052.png

热销图书

图书京东、当当有售
京东: https://item.jd.com/12784287.html
当当: http://product.dangdang.com/29177828.html
0.9733767060093851.png

posted @ 2022-05-05 15:40  BlaLeo  阅读(180)  评论(0编辑  收藏  举报