Python 使用 Selenium,设置浏览器不弹窗,下载文件到指定位置


Firefox 文件下载

_ 设置其 Profile:_

  • browser.download.dir:指定下载路径
  • browser.download.folderList:自定义下载路径为 2;下载到桌面为 0;下载到默认路径为 1
  • browser.download.manager.showWhenStarting:在开始下载时,是否显示下载管理器
  • browser.helperApps.neverAsk.saveToDisk:对所给出文件类型不再弹出框进行询问,需指定类型

下面来个示例:

#! /usr/bin/env python
# coding: utf-8

from selenium import webdriver
import time

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.dir', 'd:\\')
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/vnd.ms-excel')

driver = webdriver.Firefox(firefox_profile=profile)

driver.get('https://www.zhwei.cn/')
driver.find_element_by_xpath('//a[text()="test.xlsx"]').click()
time.sleep(2)
driver.quit()

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

Chrome 文件下载

_ 设置其 options:_

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

示例:

#! /usr/bin/env python
# coding: utf-8

from selenium import webdriver
import time

options = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'd:\\'}
options.add_experimental_option('prefs', prefs)

driver = webdriver.Chrome(executable_path='D:\\chromedriver.exe', chrome_options=options)
driver.get('https://www.zhwei.cn/')
driver.find_element_by_xpath('//a[text()="test.xlsx"]').click()
time.sleep(2)
driver.quit()

文章作者:   hongwei
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hongwei !
评论
  目录