下载文件

 

WebDriver允许我们设置默认的文件下载路径,也就是说,文件会自动下载并且存放到设置的目录中,不同的浏览器设置方式不同。
下面以 Firefox 浏览器为例,演示文件的下载。
import os
from seleni um dmport 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.get ("https://pypi.org/project/selenium/#files")
driver.find _element by partial_link_text ("selenium-3.141.0.tar.gz").click()

browser.download.folderList
设置为0,表示文件会下载到浏览器默认的下载路径;设置为2,表示文件会下载到指定目录。
browser.download.dir
用于指定下载文件的目录。通过os.getcwd()方法获取当前文件的所在位置,即下载文件保存的目录。
browser.helperApps.neverAsk.saveToDisk

 

指定要下载文件的类型,即 Content-tvpe值,“binary/octet-stream”用于表示二进制文件。
HTTP Content-type常用对照表参见http://tool.oschina.net/commonso
可以通过在Firefox浏览器地址栏输入“about:config”进行参数的设置,如图4-7所示。

在调用WebDriver的Firefox类时将所有设置选项作为firefox_profile参数传递给Firefox浏览器。Firefox浏览器在下载时会根据这些设置将文件下载到当前脚本目录下。

 

 

 

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.get("https://pypi.org/project/selenium/#files")
driver.find_element_by_partial_link_text("selenium-3.141.0.tar.gz").click()
Chrome浏览器在下载时默认不会弹出下载窗口,这里主要想修改默认的下载路径。

 

profile.default_content settings.popups
设置为0,表示禁止弹出下载窗口。
download.default_directory
设置文件下载路径,使用os.getcwd)方法获取当前脚本的目录作为下载文件的保存位置。

 

posted @ 2020-10-31 14:34  Catonce  阅读(70)  评论(0编辑  收藏  举报