概要
やり方は、chrome://policy/
にあるPromptForDownloadLocation
を false
に設定する。
だけなのだが、レジストリ エディターで値の追加・編集を行う必要がある
Pythonで自動化するならsubprocess
かwinreg
で対応するしか無さそう
メリット
シークレットモードでファイルをダウンロードできるようになる
デメリット
レジストリ エディターを編集できる権限が必要
WebDriverだけではなく、普段使っているブラウザにもポリシーが適応される
試した環境
アイテム | バージョン |
---|---|
OS | Windows 11 64bit |
Python | 3.10.10 64bit |
selenium | 4.26.0 |
ChromeDriver | 130.0.6723.70 |
追加
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome" /v PromptForDownloadLocation /t REG_DWORD /d 0 /f
言語化
- 左下のWindowsから
レジストリ エディター
を開く または Windowsキー + R でregedit
と入力 - 左列の折りたたみメニューから順に開いていく「コンピューター -> HKEY_LOCAL_MACHINE -> SOFTWARE -> Policies」
- フォルダ名
Policies
を「右クリック -> 新規 -> キー -> フォルダ名をGoogle
」 - フォルダ名
Google
を「右クリック -> 新規 -> キー -> フォルダ名をChrome
」 - フォルダ名
Chrome
を「右クリック -> 新規 -> DWORD(32ビット)値 -> 名前をPromptForDownloadLocation
」 - 名前
PromptForDownloadLocation
を「右クリック -> 修正 -> 値のデータを0
」
削除
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome" /v PromptForDownloadLocation /f
言語化
- 左下のWindowsから
レジストリ エディター
を開く または Windowsキー + R でregedit
と入力 - 左列の折りたたみメニューから順に開いていく「コンピューター -> HKEY_LOCAL_MACHINE -> SOFTWARE -> Policies -> Google -> Chrome」
- 名前
PromptForDownloadLocation
を「右クリック -> 削除」
各ブラウザのポリシー
Google Chromeで設定できたので、他ブラウザも同様に設定可能と思われる
Google Chrome
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome
参考URL
https://chromeenterprise.google/policies/#PromptForDownloadLocation
Microsoft Edge
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge
参考URL
https://learn.microsoft.com/ja-jp/deployedge/microsoft-edge-policies#promptfordownloadlocation
Mozilla Firefox
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Mozilla\Firefox
参考URL
https://mozilla.github.io/policy-templates/#promptfordownloadlocation