Python 解決火狐瀏覽器不彈出下載框直接下載的問題
用火狐瀏覽器下載文件,總是遇到這個彈窗問題,如下圖:

原因:
使用火狐瀏覽器,點擊下載,彈出下載彈框,使用AutoITLibrary庫,能夠判斷是否彈出了下載彈框,但因為不能定位到下載彈框,導致沒有下載,所以需要在下載過程中,不彈出下載框,直接下載,然后再判斷文件是否下載成功。
解決辦法:
1、自己啟動Firefox瀏覽器,操作一次下載的過程。然后查看瀏覽器的“更多”-》“選項”-》“應用程序”-》查看剛新增的文件類型,并修改為“保存文件“。
我的是 以“.GZ”結尾的,改為“保存文件“。

2、查看下載文件的Content_Type類型,我下載的文件是binary/octet-stream


3、新建python文件,輸入以下代碼。
fp = webdriver.FirefoxProfile()
#定義瀏覽器設置的屬性
fp.set_preference('browser.download.dir','C:\\Users\\Downloads')
#保存到指定目錄
fp.set_preference("browser.download.folderList",2)
#設置成0代表下載到瀏覽器默認下載路徑;設置成2則可以保存到上面設置的指定目錄下
fp.set_preference("browser.download.manager.showWhenStarting",False)
#不管是True還是False,都不顯示開始,直接開始下載
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","binary/octet-stream")
#不詢問下載路徑,講文件直接下載。一定要設置正確的文件的Content_Type。
driver = webdriver.Firefox(firefox_profile=fp)
#給driver的賦予設置的屬性
測試使用的環(huán)境是:win 7 64位 +python 3.5 +Firefox 60.0 +selenium 3.8.0




以上這篇Python 解決火狐瀏覽器不彈出下載框直接下載的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python提示[Errno 32]Broken pipe導致線程crash錯誤解決方法
這篇文章主要介紹了Python提示[Errno 32]Broken pipe導致線程crash錯誤解決方法,是ThreadingHTTPServer實現http服務中經常會遇到的問題,需要的朋友可以參考下2014-11-11
Python并發(fā)concurrent.futures和asyncio實例
這篇文章主要介紹了Python并發(fā)concurrent.futures和asyncio實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05

