下载文件
# 下载文件
'''
WebDriver 允许我们设置默认的文件下载路径, 也就是说,文件会自动下载存放到设置的目录,
不同浏览器设置方式不同
下面是以 Firefox 为例
'''
import os from selenium import webdriver fp = webdriver.FirefoxProfile() fp.set_preference("browser.download.folderList", 2) fp.set_preference("browser.download.dir", os.getcwd()) fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "binary/octet-stream") driver = webdriver.Firefox(firefox_profile=fp) driver.implicitly_wait(10) driver.get("https://pypi.org/project/selenium/#files") driver.find_element_by_link_text("selenium-3.141.0.tar.gz").click()
'''
为了能在 Firefox 浏览器中实现文件的下载,我们通过 FirefoxProfile() 对其做一些设置
browser.download.folderList
设置为 0 ,表示文件会下载到浏览器默认的下载路径; 设置为2 表示文件会下载到指定目录
browser.download.dir
用于指定下载文件的目录。 通过os.getcwd() 方法获取当前文件的所在位置,即下载文件保存的目录
browser.helperApps.neverAsk.saveToDisk
指定下载文件的类型, 即 Content-type 值, “binary/octet-stream” 用于表示二进制文件
HTTP content-type 常用对照表参见 http://tool.oschina.net/commons
可以通过在 Firefox 浏览器地址栏输入 “ about.config” 进行参数的设置。
在调用 WebDriver 的 Firefox 类时将所有设置选项作为 firefox_profile 参数传递给 Firefox 浏览器。
Firefox 浏览器在下载时会根据这些设置将文本下载到当前脚本目录下。
'''
'''
下面是 Chrome 浏览器演示:
'''
"""
import os from selenium import webdriver options = webdriver.ChromeOptions() prefs = {'profile.default_content_settings.popups':0, 'download.default_directory':os.getcwd()} options.add_experimental_option('prefs', prefs) driver = webdriver.Chrome(chrome_options=options) driver.find_element_by_link_text("selenium-3.141.0.tar.gz").click()
"""
浙公网安备 33010602011771号