簡體   English   中英

使用Selenium在Python中進行Chrome無頭文件下載

[英]Chrome headless file download with Selenium in Python

在無頭模式下,Chrome默認禁止文件下載。

但是,最近他們為DevTools添加了一個選項來啟用此行為:

https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-setDownloadBehavior

在Python中使用Selenium和ChromeDriver,如何允許文件下載?

對於那些仍在尋找的人,我就是這樣做的:

def enable_download_in_headless_chrome( driver, download_dir):
    #add missing support for chrome "send_command"  to selenium webdriver
    driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')

    params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_dir}}
    driver.execute("send_command", params)

這是添加無頭文件下載支持的chromedriver票: https ://bugs.chromium.org/p/chromedriver/issues/detail?id = 1973

使用當前版本的無頭Chrome(#60)時,文件下載被禁用。 支持啟用下載的功能已添加到版本#62,該版本目前位於Dev通道中。 需要ChromeDriver才能支持此功能。

它還引用了https://bugs.chromium.org/p/chromium/issues/detail?id=696481 ,其中包含該問題的復制步驟:

Chrome版本:Chromium 58.0.3023.0

哪些步驟將重現該問題? (1)在命令行上設置無頭模式( - 無頭)(2)將URL指向可下載文件(3)沒有任何反應

預期結果是什么?

在無頭模式下啟動並指向帶有可下載文件的URL時,應下載文件並將其保存在“下載”文件夾中。

會發生什么?

什么都沒發生,文件沒有下載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM