🐕

[Python]Chromedriverのダウンロードの設定がうまくいかない

2021/05/03に公開

環境/状況

python+selenium+chromeを使ってwebサイトを回遊して、ダウンロードをしたかった。しかしデフォルトのダウンロードフォルダには入れたくなく、ダウンロード先を変えたかった。がうまく動作しなかった話です。

(本題)Chromedriverのダウンロードの設定がうまくいかない

業務でクソハマりました。原因は対応バージョンの差異。
業務で使っていたのがselenium(3.4.3)でoptionsの指定の仕方が違った。3.4.3にchrome_optionsというキーワード引数はなかった。(VSCodeの定義ジャンプ機能でChromeのinitメソッドでchrome_optionsないやんって気付きました)
3.14.1現在では、chrome_optionsキーワード引数は非推奨みたい?

基本的な設定方法

options = webdriver.ChromeOptions()
prefs = {}
prefs['download.default_directory'] = download_path
prefs['download.directory_upgrade'] = True
prefs['download.extensions_to_open'] = ''
prefs['download.prompt_for_download'] = False
prefs['safebrowsing.enabled'] = True
options.add_experimental_option("prefs", prefs)
print(options.experimental_options)
super(MyChromeDriver, self).__init__(chrome_options=options)

バージョンごとの設定方法の違い

#selenium3.14.1の指定方法
webdriver.Chrome(options=options)

#selenium3.4.3の指定方法
webdriver.Chrome(chrome_options=options)

Discussion