【Python】【Selenium:バージョン4.6以上】ChromeDriver自動更新する方法

SeleniumでスクレイピングやE2Eテストを回していると、ある日突然「ChromeDriverが合わない…」で止まることがあります😇
でも Selenium 4.6以降なら、もう“ChromeDriverを手で落として管理する時代”は終わりです✨
Selenium Managerがドライバ管理を自動化してくれるので、コードも運用もスッキリします。


障害あるある:旧来のChromeDriver管理で詰む😵‍💫

よく出る症状(例)⚠️

  • OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。 が出る
  • ChromeDriverManager().install() 周りで急に動かなくなった
  • 環境更新(Chrome更新 / Windows更新)後に崩壊する

実際、Seleniumの仕様変更や周辺ツールの挙動差で、過去に動いていた書き方が急に不安定化するケースがあります。


結論:Selenium 4.6以降は「driver = webdriver.Chrome()」で自動管理✅

Selenium 4.6で Selenium Managerが導入され、ブラウザドライバの自動取得・管理が標準機能になりました。


Selenium Managerとは?🧰(ざっくり理解でOK)

  • Seleniumに同梱される仕組みで、必要なドライバを自動で用意してくれます
  • つまり、ChromeDriverを自分で探して配置してパス通して…が不要になります✨

旧方式 vs 新方式 早見表📌

項目旧方式(手動/外部マネージャ)新方式(Selenium Manager)
ドライバの準備自前でDL/更新が必要自動で取得・管理
コードの複雑さService指定などが増えるwebdriver.Chrome()でOK
更新耐性環境更新で壊れがち追従しやすい(運用ラク)
トラブル原因キャッシュ破損・ミスマッチ等ネットワーク/権限の影響が中心

実装編:最短で動かす手順🧪

前提条件をそろえる✅

  • Selenium:4.6以上(できれば最新版へ)
  • Chrome(またはEdge/Firefox)がインストール済み

アップデートコマンド(例)⬆️

pip install -U selenium

基本(最短)コード✨

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com")

これで ChromeDriverの用意を自動化できます。


ヘッドレス実行もいつも通りOK👻

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")

driver = webdriver.Chrome(options=options)
driver.get("https://example.com")

「オプションを足すときは add_argument() を積む」だけでOKです👍(挙動方針は基本同じ)


トラブルシュート:まだ動かないときのチェックリスト🔧

1) WinError 193 が出る(webdriver_manager利用時に多い)⚠️

このエラーは「違う形式のファイルを実行しようとしている」「キャッシュが壊れている」などで起きがちです。
対策はシンプルで、webdriver_manager依存を外してSelenium Managerへ寄せるのが安定です。

それでもwebdriver_managerを使い続けたい場合の応急処置🧹

キャッシュ削除で直る例も報告されています(例:.wdm 配下の削除)。


2) Driverが見つからない系エラー🚨

「ドライバが見つからない」系は、Seleniumの公式トラブルシュートが整理されています。
まずは **Seleniumがドライバを見つける経路(自動/手動)**のどこで止まっているかを切り分けるのが近道です。


3) 社内ネットワーク/プロキシで落ちる🌐

Selenium Managerは必要に応じて取得処理が走るため、ネットワーク制限がある環境だと失敗することがあります。
その場合は プロキシ設定・許可リスト・実行ユーザー権限を疑うと復旧が早いです(CI/CDやVDIでも同様)🧩


運用のコツ:長期で壊れにくくする✅

Seleniumは「標準機能寄せ」が最強💪

外部ドライバ管理を減らし、Seleniumの標準(Selenium Manager)へ寄せるほど、
環境更新での事故率が下がり、保守コストが落ちます

CIでもローカルでも同じ書き方に統一🎯

  • 開発PCだけ動く、が消える
  • 共有コードの再現性が上がる
  • 引き継ぎがラクになる

結果として「止まらない自動化」が作れます🏃‍♂️💨


FAQ(よくある質問)🙋‍♀️🙋‍♂️

Q1. Selenium 4.6未満だとどうなる?🤔

A. Selenium Manager前提の自動管理が効きにくいので、ドライバ管理で詰まりやすいです。まずはSeleniumを4.6以上へ更新がおすすめです⬆️

Q2. webdriver.Chrome() だけで本当にChromeDriver要らないの?😳

A. “自分で用意する必要がない”という意味でOKです。Seleniumの仕組みが必要に応じてドライバ管理をしてくれます🧰

Q3. それでも動かない時、最初に見るべきポイントは?🔍

A. ①Seleniumのバージョン、②ネットワーク(プロキシ/遮断)、③権限(実行ユーザー)を上から順に見ると早いです✅

Q4. WinError 193 の一発解決は?🧯

A. webdriver_manager依存を外して Selenium Manager運用へ切替が最も安定しやすいです(応急処置としてキャッシュ削除で直る例もあります)🧹

Q5. ヘッドレスやオプション指定は今まで通り?👻

A. はい、ChromeOptions()add_argument() を追加していけばOKです✨


まとめ:ドライバ管理で消耗しない自動化へ🌈

Selenium 4.6以降なら、**ChromeDriver運用の悩みを“仕組みで消す”**のが正解です✅
コードもシンプルに統一できて、トラブル対応の時間が激減します⌛✨


📦おすすめ教材・環境整備アイテム

  • Python基礎〜自動化の定番書📘
  • Selenium/テスト自動化の入門書🧪
  • スクレイピング運用入門書☁️
  • 例外処理・ログ設計が学べる教材🧰
あざらし

はじめまして、あざらしです。 フリーターからエンジニア会社へ就職し、 現在はフリーランスのシステムエンジニアとして働いています。 本業のエンジニア業のかたわら、 ✍️ ブログ運営 と「収入の柱を増やす挑戦」を少しずつ続けています。 フリーター時代から比べると、 段階的に収入が増えていくのを実感できるのが素直にうれしい今日この頃。 このブログでは、日々の気づき・体験談 IT・ガジェット・ゲーム系の話 「調べて分かったこと」を噛み砕いた解説 などを中心に、ジャンルに縛られない雑記ブログとして発信しています。 「自分と同じように悩んでいる人のヒントになればいいな」 そんな気持ちで更新中です。 👉 プロフィール詳細は、名前「あざらし」をクリックしてください