开发者社区> 问答> 正文

即使设置了首选项,python selenium也不会绕过firefox下载对话框

我正在尝试从以下链接下载文件(市场摘要(结算)— ZIP):https : //dps.psx.com.pk/downloads

这是我的代码:

from datetime import date
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import ElementClickInterceptedException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import time

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.preferences.instantApply",True)
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
profile.set_preference("browser.helperApps.alwaysAsk.force",False)
profile.set_preference("browser.download.manager.showWhenStarting",False)
profile.set_preference("browser.download.folderList",0)


driver = webdriver.Firefox(firefox_profile=profile)
driver.get('https://dps.psx.com.pk/downloads')

start_date = driver.find_element_by_id('downloadsDatePicker')
start_date.send_keys(Keys.BACKSPACE\*0)
send_date = date(2014,1,1).strftime("%Y-%m-%d")
start_date.send_keys(send_date)
driver.find_element_by_id('downloadsSearchBtn').click()
link = '/download/mkt_summary/{}.Z'.format(send_date)
time.sleep(5)
driver.find_element_by_css_selector("a[href='{}'".format(link)).click()

即使设置了首选项,firefox仍会弹出一个下载对话框。为什么会这样,如何避免这种行为?

问题来源:stackoverflow

展开
收起
is大龙 2020-03-23 16:18:39 527 0
1 条回答
写回答
取消 提交回答
  • 根据您正在准备的站点和链接,您不是在下载csv文件,而是下载扩展名为.Z的zip文件。

    您需要更改首选项“ browser.helperApps.neverAsk.saveToDisk”的代码,以允许从站点接收响应,如下所示。

    profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")
    

    回答来源:stackoverflow

    2020-03-23 16:18:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载