先回の[ダウンロード]ページに表示されるファイルのダウンロード速度を記録する際に利用した Selenium を使ってC#から画面のスクリーンショットを保存する方法を作って みたので備忘録的に投稿します。
Selenium パッケージの追加
今回は C# から取得をするので、Visual Studioの依存関係メニューから Selenium で利用するパッケージを追加していきます。 詳細については、別記事をご覧ください。
Visual Stuidoの場合には、[ソリューション エクスプローラー]の画面で、[依存関係]をマウスで右クリックで表示される[NuGetパッケージの管理]メニューを選択して表示される画面で、”Selenium”と検索して表示される一覧から[Selenium.WebDriver]と[Selenium.WebDriver.ChromeDriver]を追加します。
Google Chromeのプリントスクリーンを保存
Selenium.Screenshotを使って、Chromeで表示されている画面のスクリーンショットを操作できます。
流れ的にはChromeを起動して、保存するURLを読み込んで取得したスクリーンショットを指定の画像形式で保存します。
C#の場合には、次のコードでプリントスクリーンで取得したGoogle Chromeの画面がJpeg形式で保存されます。
IWebDriver _webDriver;
ChromeDriverService service = ChromeDriverService.CreateDefaultService();
ChromeOptions options = new ChromeOptions();
_webDriver = new ChromeDriver(service, options);
_webDriver.Navigate().GoToUrl("https://www.google.com/");
Screenshot _screenShot = (_webDriver as ITakesScreenshot).GetScreenshot();
_screenShot.SaveAsFile("C:\\screenshot.jpg", ScreenshotImageFormat.Jpeg);
最後の [ScreenshotImageFormat]列挙値で、PNGなど別の画像形式に変更ができます。
スクリーンショットなので、保存される画像のサイズはChromeのウィンドウサイズに依存されるため注意が必要です。
まとめ
Seleniumを使ってGoogle Chromeで表示されている画面を画像形式で保存することが可能です。
Google Chromeの表示画面を、画像形式で保存したい方の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。