Edited at

Headless Chromeでファイルをダウンロード

More than 1 year has passed since last update.


概要

ChromeをHeadlessで動かすと、ファイルをダウンロードしてくれません。

こちらで議論されていますが、セキュリティの観点からのようです。

https://bugs.chromium.org/p/chromium/issues/detail?id=696481

しかしながらLinuxのコンソールで動かしたいという需要があります。

ここに答えが書いてありますが、ChromeDriver のコマンドを発行することでそれが可能になります。

Downloading with chrome headless and selenium


  • Python 3.6.5

  • Google Chrome バージョン: 67.0.3396.79(Official Build) (64 ビット)

  • ChromeDriver 2.40.565383

driver.command_executor._commands["send_command"] = (

"POST",
'/session/$sessionId/chromium/send_command'
)
params = {
'cmd': 'Page.setDownloadBehavior',
'params': {
'behavior': 'allow',
'downloadPath': download_path
}
}
driver.execute("send_command", params=params)