概要
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)