SeleniumでスクレイピングやE2Eテストを回していると、ある日突然「ChromeDriverが合わない…」で止まることがあります😇
でも Selenium 4.6以降なら、もう“ChromeDriverを手で落として管理する時代”は終わりです✨
Selenium Managerがドライバ管理を自動化してくれるので、コードも運用もスッキリします。
OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。 が出るChromeDriverManager().install() 周りで急に動かなくなった実際、Seleniumの仕様変更や周辺ツールの挙動差で、過去に動いていた書き方が急に不安定化するケースがあります。
Selenium 4.6で Selenium Managerが導入され、ブラウザドライバの自動取得・管理が標準機能になりました。
| 項目 | 旧方式(手動/外部マネージャ) | 新方式(Selenium Manager) |
|---|---|---|
| ドライバの準備 | 自前でDL/更新が必要 | 自動で取得・管理 |
| コードの複雑さ | Service指定などが増える | webdriver.Chrome()でOK |
| 更新耐性 | 環境更新で壊れがち | 追従しやすい(運用ラク) |
| トラブル原因 | キャッシュ破損・ミスマッチ等 | ネットワーク/権限の影響が中心 |
pip install -U selenium
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com")
これで ChromeDriverの用意を自動化できます。
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です👍(挙動方針は基本同じ)
WinError 193 が出る(webdriver_manager利用時に多い)⚠️このエラーは「違う形式のファイルを実行しようとしている」「キャッシュが壊れている」などで起きがちです。
対策はシンプルで、webdriver_manager依存を外してSelenium Managerへ寄せるのが安定です。
キャッシュ削除で直る例も報告されています(例:.wdm 配下の削除)。
「ドライバが見つからない」系は、Seleniumの公式トラブルシュートが整理されています。
まずは **Seleniumがドライバを見つける経路(自動/手動)**のどこで止まっているかを切り分けるのが近道です。
Selenium Managerは必要に応じて取得処理が走るため、ネットワーク制限がある環境だと失敗することがあります。
その場合は プロキシ設定・許可リスト・実行ユーザー権限を疑うと復旧が早いです(CI/CDやVDIでも同様)🧩
外部ドライバ管理を減らし、Seleniumの標準(Selenium Manager)へ寄せるほど、
環境更新での事故率が下がり、保守コストが落ちます✨
結果として「止まらない自動化」が作れます🏃♂️💨
A. Selenium Manager前提の自動管理が効きにくいので、ドライバ管理で詰まりやすいです。まずはSeleniumを4.6以上へ更新がおすすめです⬆️
webdriver.Chrome() だけで本当にChromeDriver要らないの?😳A. “自分で用意する必要がない”という意味でOKです。Seleniumの仕組みが必要に応じてドライバ管理をしてくれます🧰
A. ①Seleniumのバージョン、②ネットワーク(プロキシ/遮断)、③権限(実行ユーザー)を上から順に見ると早いです✅
WinError 193 の一発解決は?🧯A. webdriver_manager依存を外して Selenium Manager運用へ切替が最も安定しやすいです(応急処置としてキャッシュ削除で直る例もあります)🧹
A. はい、ChromeOptions() に add_argument() を追加していけばOKです✨
Selenium 4.6以降なら、**ChromeDriver運用の悩みを“仕組みで消す”**のが正解です✅
コードもシンプルに統一できて、トラブル対応の時間が激減します⌛✨
イラスト1枚から、テクスチャ付…