1. 程式人生 > >Python selenium —— 檔案下載,不彈出視窗,直接下載到指定路徑

Python selenium —— 檔案下載,不彈出視窗,直接下載到指定路徑

今天談談檔案下載吧,很多人不會處理彈出的檔案下載框,其實跟上傳類似,可以用autoit和win32api解決,方法類似,可以看博主之前的文章 ,今天這裡博主主要想講講更漂亮的一種處理辦法,那就是指定下載路徑,不彈出彈框,直接下載到指定路徑。

今天主要分享Firefox和Chrome的設定方法。

Firefox 檔案下載

對於Firefox,需要我們設定其Profile:

  • browser.download.dir:指定下載路徑
  • browser.download.folderList:設定成 2 表示使用自定義下載路徑;設定成 0 表示下載到桌面;設定成 1 表示下載到預設路徑
  • browser.download.manager.showWhenStarting
    :在開始下載時是否顯示下載管理器
  • browser.helperApps.neverAsk.saveToDisk:對所給出檔案型別不再彈出框進行詢問

下面來個示例:

# -*- coding: utf-8 -*-

from selenium import webdriver
from time import sleep

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/zip') driver = webdriver.Firefox(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 禁止彈出視窗

它的設定就簡單多了,看個示例:

# -*- coding: utf-8 -*-

from selenium import webdriver
from time import sleep


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('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
sleep(3)
driver.quit()

看,檔案下載也很簡單吧。

更多關於python selenium的文章,請關注我的CSDN專欄:

相關推薦

Python selenium —— 檔案下載視窗直接下載指定路徑

今天談談檔案下載吧,很多人不會處理彈出的檔案下載框,其實跟上傳類似,可以用autoit和win32api解決,方法類似,可以看博主之前的文章 ,今天這裡博主主要想講講更漂亮的一種處理辦法,那就是指定下載路徑,不彈出彈框,直接下載到指定路徑。 今天主要分享Fi

ajax呼叫後臺實現檔案下載下載提示框無法下載

在做ajax呼叫後臺實現檔案下載時,出現了後臺返回前端正確資料,但前臺就是不提示下載框,且沒有下載檔案 $.ajax({ "url" : urlStr + 'exportFile', "method" : "POST", "data" : { "list

Dynamics CRM JavaScript 儲存時視窗確認則儲存取消則儲存。

該程式碼需要配置OnSave事件。並啟用“將執行上下文作為第一個引數” 。 OnSave事件在表單載入和儲存時都會觸發,所以對於Alert的動作,需要寫好判斷條件,防止載入時觸發。 本程式碼是通過判斷是否欄位未儲存來防止觸發的。 function SaveAlert(Execu

【轉】SMARTFORMS列印預覽的視窗直接預覽

 DATA: ctrl_param TYPE ssfctrlop,   out_option TYPE ssfcompop,   fm_name TYPE rs38l_fnam.   ctrl_param-preview = 'X'.   out_option-tddes

Android 7.1.2 原始碼修改使用自己的 app 作為預設桌面桌面選擇

需求:使用自己開發的桌面 app 作為預設,不再出現桌面選擇 在不修改原始碼前提下,可以設定自己的app為桌面,但是如果自己的應用出現崩潰,則在 Android 啟動機制下會彈出桌面選擇彈窗,如果在定製的系統中,這個是不能接受的,但本身在開發也需要使用預設 launcher 進行其他

網賭遇到黑網退出難錢怎麼辦?報警有用嗎?

現在的網路資訊時代,很多人都會選擇在網上做一些事情包括日常的娛樂,所以在看不到摸不著的網路上難免會被騙,玩×××是很不安全的,在沒有任何保障的情況下投注進自己的血汗錢。說到不給提款被網站黑了,大多數人的情況都是差不多,原因一,被套路。被套路指的是被一些騙子帶進去玩,用一些華麗的語言把網站包裝得密不透風,用一些

網賭遇到黑網退出難錢怎麽辦?報警有用嗎?

eee tex 信息 是否 是我 watermark 分享圖片 自己的 mage 現在的網絡信息時代,很多人都會選擇在網上做一些事情包括日常的娛樂,所以在看不到摸不著的網絡上難免會被騙,玩×××是很不安全的,在沒有任何保障的情況下投註進自己的血汗錢。說到不給提款被網站黑了,

多種視窗包括ajax圖片等載入

            <p>It's easy to override the styling of Featherlight. All you need to do is specify an additional class in the data-featherlight-variant 

div視窗視窗固定螢幕中間

<style type="text/css"> #login { display: none; border:10px sol

如何關閉視窗重新整理父視窗

關閉彈出視窗,重新整理父視窗 <script>\r\nopener.location.reload();\r\nwindow.close();\r\n</script> 擴充套件:window.opener.location.href 2個

潤乾——提示框直接匯出excel

不彈出提示框直接匯出excel 通常我們在瀏覽報表的時候,可以通過潤乾自帶的標籤實現匯出Excel,在點選匯出的標籤後,頁面會彈出一個提示框,可以讓使用者對於匯出的Excel設定是否分頁,是否匯出公式,對話方塊如下圖所示。 當用戶想直接匯出excel,不彈出此提示框時,可以通過在JSP的<repor

通過網頁修改activex安全設定新增信任站點禁用視窗阻止程式

//新增信任站點ipWshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ZoneMap//Ranges//Range100//","");WshShell.RegWrite("HKC

基於easyui的視窗自己留個以後用

/** * @deprecated 彈出視窗元件,基於easyui-1.3.2+, * @author caonq * @version 0.1 */ var popWin={ setupNum:1, buttons:[], //初始化元件。 init:fu

JQuery 視窗(div顯示與隱藏)隱藏層半透明

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="te

js 異常處理 錯誤視窗

問題:幾乎開啟的每個網頁左下角都顯示“網頁有錯誤” 行: 2 char: 1 錯誤: 語法錯誤 程式碼: 0 “腳 本錯誤”形成的原因是因為訪問者所使用的瀏覽器不能完全支援頁面裡的指令碼,而且出現頻率並不低。遇到“指令碼錯誤”時一般會彈出一個非常難看的指令碼執行錯誤 警告視窗,而事實上,指令碼錯誤並不會影響網

點選視窗視窗中播放視訊文…

<!--視訊彈出樣式開始--> <LINK rel=stylesheet type=text/css href="js/lightwindow.css"> <SCRIPT language=JavaScript type=text/javascript src="js/4

檔案下載下載在頁面開啟的方法。

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>default4.aspx:     <

selenium+python自動化80-文件下載詢問框)

manager browser cat odi TP cto show 默認 AS 前言 上一篇是點彈出框上的按鈕去保存文件,本篇介紹一種更加優雅的方法,加載Firefox和Chrome的配置文件,不彈出詢問框後臺下載。 一、FirefoxProfile 1.點下載的時

Java通過Spring MVC匯出批量Excel檔案壓縮包下載

直接貼程式碼: 頁面jsp的部分程式碼,為表單提交的程式碼: <form id="exportForm" action="${pageContext.request.contextPath}/downLoad/exportFile.action" onsub

springmvc Excel檔案上傳,使用ajaxSubmit方法進行檔案上傳,使用一個框(jquery layer)點選進行下載

效果: 彈出層使用的是jquery外掛layer  外掛下載地址http://download.csdn.net/detail/rendeyishi/8048139 因為我是使用的是jquery裡面的ajaxSubmit進行檔案上傳 所以這個jquery.form.js必