Zei*_*zar 1 python firefox webdriver download selenium-webdriver
我有一个python脚本,它试图自动下载excel文件.我试图直接解决firefox配置文件,它工作正常:
path = '\\path\\to\\firefox\\default\\profile\\'
fp = webdriver.FirefoxProfile(path)
driver = webdriver.Firefox(firefox_profile=fp)
driver.maximize_window()
driver.get('url')
driver.find_element_by_id('downloadButton').click()
time.sleep(5)
driver.close()
Run Code Online (Sandbox Code Playgroud)
但是当我尝试以编程方式设置配置文件时,它不起作用; 还有下载弹出窗口:
fp = webdriver.FirefoxProfile()
fp.set_preference('browser.download.folderList', 2)
fp.set_preference('browser.download.manager.showWhenStarting', False)
fp.set_preference('browser.download.dir', os.getcwd())
fp.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv/xls/xlsx')
driver = webdriver.Firefox(firefox_profile=fp)
driver.maximize_window()
driver.get('url')
driver.find_element_by_id('downloadButton').click()
time.sleep(5)
driver.close()
Run Code Online (Sandbox Code Playgroud)
我也改了行fp.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv/xls/xlsx')到fp.set_preference('browser.helperApps.neverAsk.saveToDisk', ('application/vnd.ms-excel')); 但没有变化.
知道我错了什么吗?
编辑1:
我试过了
fp.set_preference('browser.helperApps.neverAsk.saveToDisk', "text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream")
Run Code Online (Sandbox Code Playgroud)
和
fp.set_preference('browser.helperApps.neverAsk.saveToDisk', "text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
Run Code Online (Sandbox Code Playgroud)
结果没有变化.
根据about:config文档,browser.helperApps.neverAsk.saveToDisk首选项值应该是以逗号分隔的MIME类型列表.
这个应该适合你:
fp.set_preference('browser.helperApps.neverAsk.saveToDisk', "text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream")
Run Code Online (Sandbox Code Playgroud)
演示(使用XLSX Sample网页):
import os
from selenium import webdriver
import time
url = "http://file-sample.com/xlsx/"
# configuring profile
fp = webdriver.FirefoxProfile()
fp.set_preference('browser.download.folderList', 2)
fp.set_preference('browser.download.manager.showWhenStarting', False)
fp.set_preference('browser.download.dir', os.getcwd())
fp.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
# open the web page and download the file
driver = webdriver.Firefox(firefox_profile=fp)
driver.maximize_window()
driver.get(url)
driver.find_element_by_xpath('//div[@class="post-entry"]//a').click()
time.sleep(5)
driver.close()
Run Code Online (Sandbox Code Playgroud)
结果,文件将下载到当前工作目录中.
| 归档时间: |
|
| 查看次数: |
5943 次 |
| 最近记录: |