先回の[ダウンロード]ページに表示されるファイルのダウンロード速度を記録したくて Selenium を使ってC#から取得する方法を作ってみましたが、実行中のGoogle Chromeを取得する方法に手間取ったので備忘録的に投稿します。
Selenium パッケージの追加
今回は C# から取得をするので、Visual Studioの依存関係メニューから Selenium で利用するパッケージを追加していきます。 詳細については、別記事をご覧ください。
Visual Stuidoの場合には、[ソリューション エクスプローラー]の画面で、[依存関係]をマウスで右クリックで表示される[NuGetパッケージの管理]メニューを選択して表示される画面で、”Selenium”と検索して表示される一覧から[Selenium.WebDriver]と[Selenium.WebDriver.ChromeDriver]を追加します。
起動中のGooglg Chromeを取得
Selenium.WebDriver.ChromeDriverを使って、取得を行えます。
やり方は、実行中のChromeの場合は、取得用(デバッグ用)のポートを指定して起動しておいて、外部からポートを指定して取得する形になっています。
var options = new ChromeOptions
{
DebuggerAddress = "127.0.0.1:9222"
};
パラメータに、ループバックアドレスでポートを指定しておいて、ChromeDriverを生成すると、指定したポートで応答したGoogle Chromeが見つかります。
using (var driver = new ChromeDriver(options))
{
//取得後の処理
}
後は、次のようなコマンドでポートを指定してGoogle Chromeを起動しておけば、C#で取得したChromeに対して処理を行うことができます。
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -remote-debugging-port=9222 --user-data-dir=C:\_Temp
まとめ
実行中のGoogle ChromeをSeleniumを使って取得するには、あらかじめデバッグ用のポートを指定してに起動しておく必要がありますが、ChromeDriverのoptionにアドレスとポートを指定することで、取得を行うことができます。
Seleniumを使って、起動中のGoogle Chromeを取得したい方の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。