pythonを用いてheadlessのchromeでファイルをダウンロードする

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で叩いたが上手く行かなかった。原因を解明中。