LoginSignup
2
0

Selenium Chrome Driver 現在のダウンロードフォルダ指定方法

Posted at

Selenium Chrome Driverのダウンロードフォルダの指定が効かない

2023年に入ってからSeleniumでダウンロードフォルダを指定しても有効にならなくなった。
download.default_directoryは、ヘッドレスモードでは使えるようだが、そうでない場合には反映されないようになったようだ。

対策

chrome driverのインスタンス作成後に1回だけPage.setDownloadBehaviorを設定すればいいらしい。
ただし、setDownloadBehaviorはDeprecatedになっている。

t.py
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

download_dir = "c:\\test\\" #ダウンロードフォルダ

chrome_service = ChromeService(executable_path= 'C:\\chromedriver\\chromedriver.exe')
driver = webdriver.Chrome(service=chrome_service)

driver.get('http://google.com')
#ここから
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_dir}}
driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
driver.execute("send_command", params)
#ここまで
#この後ダウンロードする

起動時のオプションでadd_argument("--headless=new")にするといいとかいう記載もあったが、ヘッドレスでないときはどうすればいいのかは不明。
正式な対処法が分かるまでは、Page.setDownloadBehaviorを使うしかなさそうである。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0