在项目过程中,上传,下载是很常用的功能,为了验证功能好不好用,我们可以通过webdriver。
webdriver允许我们设置默认文件下载路径。
但是,想要下载,我们需要先了解下载文件的类型,有两种方式,
①curl
>>curl -I http:/www.baidu.com
可以直接看到 content_type 的类型
②requests
import requests
file_type = requests.head("http://www.baidu.com").headers['content-type']
print(file_type)
>>>>打印结果:
弄清楚了需要下载的内容类型之后,我们就有目标了。
上代码:
# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-5-21
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
import os
import requests
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir",os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/octet-stream")
browser = webdriver.Firefox(firefox_profile=fp)
url = "https://pypi.org/project/selenium/#files"
browser.get(url)
browser.find_element(By.PARTIAL_LINK_TEXT,"selenium-3").click()
browser.quit()
1、browser.download.dir:指定下载文件路径
2、os.getcwd()返回当前路径
>>>不太明白的,建议看一下 os模块, 在实际项目中,os模块运用的不算少
3、application/octet-stream:内容类型