single.php

C#で起動中のGoogle Chromeを取得する方法

先回の[ダウンロード]ページに表示されるファイルのダウンロード速度を記録したくて 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を取得したい方の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

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