headlessのchromeを用いてファイルをダウンロードする機能はデフォルトのchromedriverにはセキュリティ上の観点から搭載されていないらしい。
なので直接post通信で設定を送ってやる必要がある。今回はPythonでうまく動いたので残しておく。
driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command') driver.execute("send_command", { 'cmd': 'Page.setDownloadBehavior', 'params': { 'behavior': 'allow', 'downloadPath': download_path # ダウンロード先 } })
これを追加することでheadlessでのダウンロードが可能となる。
selenium はシェルでも叩けるはずなので同様のコマンドをcurlで叩いたが上手く行かなかった。原因を解明中。