下载文件

# 下载文件
'''
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()

 


"""

posted @ 2020-02-15 21:51  gupanpan  阅读(233)  评论(0)    收藏  举报