Selenium でブラウザを操縦するには WebDriver も忘れずに!


Web ブラウザをプログラムから操作・操縦するライブラリの老舗である Selenium と、その .NET 用バインディングの NuGet パッケージの話。

.NET プログラムから Selenium を使って Web ブラウザを操作しようとする場合、 "Selenium.WebDriver" NuGet パッケージ をその .NET プログラムのプロジェクトに追加し、C# であれば以下のようなコードを実装することになる。

using OpenQA . Selenium ;
using var driver = new OpenQA . Selenium . Chrome . ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.bing.com/" );

で、このプログラムをビルドして実行すると、よくあることとして、以下のエラーに遭遇することがある。

The path to the driver executable must be set by the webdriver.chrome.driver
system property; for more information, see https://chromedriver.chromium.org/. The latest version can be
downloaded from https://chromedriver.chromium.org/downloads

なぜこのようなエラーが発生するのかというと、実は Selenium によるブラウザの操縦にあたっては、Selenium のライブラリ本体とは別に、Chrome や Edge、Firefox といったブラウザ種別に応じた「ウェブドライバー (WebDriver)」という "プログラム" (実行可能ファイル、Windows なら .exe) を、別途事前にダウンロードしておき、実行可能なフォルダパスに配置しておく必要があるのだ。

Selenium に慣れていればどうということもないのだろうが、初見殺しとでも言えば良いのか、初心者の心臓には悪い話である。
で、.NET プログラミングの場合は、以下の NuGet パッケージを更にプロジェクトに追加しておくと、出力フォルダに各ブラウザ種別に応じた WebDriver が配置されるようになる。