前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >selenium下载文件

selenium下载文件

作者头像
周小董
发布2019-03-25 10:15:44
发布2019-03-25 10:15:44
3K00
代码可运行
举报
文章被收录于专栏:python前行者python前行者
运行总次数:0
代码可运行

Firefox 文件下载

对于Firefox,需要我们设置其Profile:

  • browser.download.dir:指定下载路径
  • browser.download.folderList:设置成 2 表示使用自定义下载路径;设置成 0 表示下载到桌面;设置成 1 表示下载到默认路径
  • browser.download.manager.showWhenStarting:在开始下载时是否显示下载管理器
  • browser.helperApps.neverAsk.saveToDisk:对所给出文件类型不再弹出框进行询问
代码语言:javascript
代码运行次数:0
运行
复制
# -*- coding: utf-8 -*-
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"C:\Users\Administrator\Desktop\1")  # 设置默认的保存文件夹
# 设置自动保存的文件类型,如果firefox不能自动保存,一定是文件类型不对
# 对所给出文件类型不再弹出框进行询问
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'application/zip')
'''
其他可选文件类型:
    application/a-gzip
    application/x-gzip,
    application/zip,
    application/x-gtar,
    text/plain,
    application/x-compressed,
    application/octet-stream,
    application/pdf
'''

# # 下面这些参数是从别的地方看到的
# profile.set_preference("browser.helperApps.alwaysAsk.force", False)
# profile.set_preference("browser.download.manager.alertOnEXEOpen", False)
# profile.set_preference("browser.download.manager.focusWhenStarting", False)
# profile.set_preference("browser.download.useDownloadDir", True)
# profile.set_preference("browser.download.manager.alertOnEXEOpen", False)
# profile.set_preference("browser.download.manager.closeWhenDone", True)
# profile.set_preference("browser.download.manager.showAlertOnComplete", False)
# profile.set_preference("browser.download.manager.useWindow", False)  #
# # disable Firefox's built-in PDF viewer
# profile.set_preference("pdfjs.disabled", True)

executable_path='../source/geckodriver-v0.23.0-win64/geckodriver.exe'
driver = webdriver.Firefox(executable_path=executable_path,firefox_profile=profile)

driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
sleep(3)
driver.quit()

Firefox需要针对每种文件类型进行设置,这里需要我们查询对应文件的MIME类型,可以用以下链接进行查询:MIME 参考手册

Chrome 文件下载

Chrome浏览器类似,设置其options:

  • download.default_directory:设置下载路径
  • profile.default_content_settings.popups:设置为 0 禁止弹出窗口

它的设置就简单多了,看个示例:

代码语言:javascript
代码运行次数:0
运行
复制
# -*- coding: utf-8 -*-
import time
from selenium import webdriver


options = webdriver.ChromeOptions()
prefs = {
    "download.prompt_for_download": False,
    'download.default_directory': 'C:/Users/Administrator/Desktop/1/',#下载目录
    "plugins.always_open_pdf_externally": True,
    'profile.default_content_settings.popups': 0,#设置为0,禁止弹出窗口
    # 'profile.default_content_setting_values.images': 2,#禁止图片加载
}
options.add_experimental_option('prefs', prefs)

executable_path = "../source/chromedriver_win2.43/chromedriver.exe"
driver = webdriver.Chrome(executable_path=executable_path, chrome_options=options)
driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
time.sleep(3)
driver.quit()

参考:https://blog.csdn.net/huilan_same/article/details/52789954

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年01月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Firefox 文件下载
  • Chrome 文件下载
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档