先回、Google ChromeのスクリーンショットをSelenium を使ってC#から取得する方法を作ってみましたが、実行中のGoogle Chromeのウィンドウサイズを変更する方法について備忘録的に投稿します。
Selenium パッケージの追加
今回は C# から取得をするので、Visual Studioの依存関係メニューから Selenium で利用するパッケージを追加していきます。 詳細については、別記事をご覧ください。
Visual Stuidoの場合には、[ソリューション エクスプローラー]の画面で、[依存関係]をマウスで右クリックで表示される[NuGetパッケージの管理]メニューを選択して表示される画面で、”Selenium”と検索して表示される一覧から[Selenium.WebDriver]と[Selenium.WebDriver.ChromeDriver]を追加します。
AVIF形式をJPEG画像に変換
Google Chromeは、AVIF形式の画像ファイルが表示可能なので画面ショットを別形式として保存することで、画像形式の変換が行えます。
実際に、ChromeDriverを使ってAVIF形式の画像をGoogle Chromeのスクリーンショットへの保存は、次のようなコードで処理ができます。
IWebDriver _webDriver;
ChromeDriverService service = ChromeDriverService.CreateDefaultService();
ChromeOptions options = new ChromeOptions();
_webDriver = new ChromeDriver(service, options);
_webDriver.Manage().Window.FullScreen();
_webDriver.Navigate().GoToUrl("file:///C:/Images/sample.avif");
Screenshot _screenShot = (_webDriver as ITakesScreenshot).GetScreenshot();
_screenShot.SaveAsFile("C:\\Images\\sample.jpg", ScreenshotImageFormat.Jpeg);
画像の縦横サイズは、Google Chromeの画面サイズに依存するのでサンプルコードは、フルスクリーンにして画面の解像度を変換後の縦横サイズにしています。
SeleniumのManageを使って最大化や縦横サイズの指定などが可能なので変換後の画像サイズが気になる方は、別記事をご覧ください。
また、最後の行にある引数 ScreenshotImageFormat を変更することでPNGなど別の画像形式に変更が可能です。
まとめ
Seleniumを使ってGoogle Chromeのウィンドウに表示したAVIF形式の画像をJPEGなどの別形式で保存が可能です。
AVIF形式のファイルを別形式に変換したい方の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。