C# + Seleniumで「指定されたファイルが見つかりません」エラーが出た時の対処法


こんにちは。今回は、C#とSeleniumを使ってブラウザ操作を行っていた際に遭遇したエラーと、その解決方法についてまとめます。

発生したエラー

SeleniumでChromeブラウザを操作しようとした際、以下のコードでエラーが発生しました。

var chrome = new ChromeDriver(driverService, options);

エラーメッセージは以下の通りです。

System.ComponentModel.Win32Exception: ‘An error occurred trying to start process
‘C:\Users\****\bin\Debug\net9.0-windows\chromedriver.exe’
with working directory ‘C:\Users\***\bin\Debug\net9.0-windows’.
指定されたファイルが見つかりません。’

原因

エラーメッセージから判断すると、chromedriver.exe が指定されたディレクトリに存在しないことが原因です。
Seleniumは、ブラウザ(この場合はChrome)を操作するために、対応するWebDriver(chromedriver.exe)が必要です。

通常、このWebDriverを手動でダウンロードしてパスを通す必要がありますが、これが適切に設定されていない場合、上記のようなエラーが発生します。

解決方法

エラー解消には、以下の手順を試してみてください。

NuGetパッケージをインストール
Visual Studioの「NuGetパッケージ管理」から、Selenium.WebDriver.ChromeDriver (作成者:jsakamoto)をインストールします。

Install-Package Selenium.WebDriver.ChromeDriver

このパッケージをインストールすると、chromedriver.exe が自動的にプロジェクトの bin/Debug フォルダ内に配置され、手動設定が不要になります。

コマンドラインからのインストールだけではなく、NuGetパッケージの検索画面で、 Selenium.WebDriver.ChromeDriverと入力し検索してからのインストールでも良いです。

ChromeDriverの初期化コードを確認
パッケージインストール後、コードも確認しておきましょう。例えば、ChromeDriver の初期化部分は次のようにシンプルに記述できます。

var chrome = new ChromeDriver();

driverServiceoptions を指定する場合でも、ChromeDriver が正しいパスから chromedriver.exe を見つけてくれるようになります。

まとめ

ブラウザ自動操作で「指定されたファイルが見つかりません」というエラーが出た場合、手動でWebDriverを配置する手間を省ける Selenium.WebDriver.ChromeDriver パッケージを導入するのが簡単で確実です。

エラーで悩んでいる方は、ぜひ試してみてください。

■他の人はこちらも見ています。■


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA