Ranorex 10.7 以降 でフルスクリーンショットを取得する方法
今回の記事では、Ranorex 10.7 以降 を使用して、テスト実行中にフルスクリーンショットを取得する方法についてご紹介します。
目次
- Ranorex 10.2.2 以前のバージョンをお使いの場合
- TakeFullScreenshotメソッドについて
- 注意事項
- ①TakeFullScreenshotメソッドを使用する方法
- ②ReportFullPageScreenshotメソッドからTakeFullScreenshotメソッドを呼び出す方法
- ビルドに失敗した場合
- 補足
Ranorex 10.2.2 以前のバージョンをお使いの場合
Ranorex 10.2.2 以前のバージョンをお使いの場合、RarenoxのオートメーションヘルパーにあるWebLibraryの ReportFullPageScreenshotメソッド を使用することで、フルスクリーンショットを取得することができます。
しかし、Ranorex 10.7 以降では、 ReportFullScreenshotメソッドが実行できない不具合が発生しているため、本記事でご紹介するTakeFullScreenshotメソッドを使用してください。
TakeFullScreenshotメソッドについて
TakeFullScreenshotメソッドは、ブラウザの標準機能である開発者ツールやショートカットを使用して、フルスクリーンショットを取得します。
撮影されたフルスクリーンショットは、レポートに表示されます。
注意事項
【注意事項1】サポート範囲について
- TakeFullScreenshotメソッドは、動作保証されたものではなく、開発元による対応までの暫定対応策となります。
必ずご自身の環境で動作を確認してから、ご利用ください。 - 下記の場合、ご自身でのユーザコードコレクションファイルの修正が必要になります。
- ブラウザの機能に問題が発生した場合
- ブラウザの機能を使用するための導線が変更された場合
- 環境依存の問題により、TakeFullScreenshotメソッドが使用できない場合
【注意事項2】TakeFullScreenshotメソッドの動作対象について
- Webアプリが対象です。
- IEは対象外です。※Edgeは対象になります。
①TakeFullScreenshotメソッドを使用する方法
- ユーザコードコレクションファイル(FullScreenshotLibrary.cs)をダウンロードする。
- プロジェクトファイル を右クリックし、手順1でダウンロードしたコレクションファイル(.cs)をインポートする。
- プロジェクトメニュー から、「 System.Management 」パッケージを追加する。
- 新しいアクションの追加 から、「 FullScreenshotLibrary 」 の「 TakeFullScreenshotメソッド 」 を選択する。
- TakeFullScreenshotメソッドに、引数を設定する。
第1引数:スクリーンショットしたいWebページを表すリポジトリアイテムを設定してください。
※【補足1】を参照
第2引数:スクリーンショットの取得処理のみに対し、待機時間(ミリ秒)を設定できます。
※設定しなかった場合や1500未満の値を設定した場合は、初期値の1500ミリ秒が適用されます。
第3引数:スクリーンショットの取得に必要な操作の全工程に対し、追加の待機時間(ミリ秒)を設定できます。
※設定しなかった場合や0未満の値を設定した場合は、、初期値の0ミリ秒が適用されます。
②ReportFullPageScreenshotメソッドからTakeFullScreenshotメソッドを呼び出す方法
既にオートメーションヘルパーのReportFullPageScreenshotメソッドを使用している場合は、こちらの方法を使用してください。
- ユーザコードコレクションファイル(FullScreenshotLibrary.cs)をダウンロードする。
- RanorexAutomationHelpersフォルダ > UserCodeCollectionフォルダ を右クリックし、手順1でダウンロードしたコレクションファイル(.cs)をインポートする。
- RanorexAutomationHelpersフォルダを右クリックし、「 System.Management 」パッケージを追加する。
- RanorexAutomationHelpersフォルダ > UserCodeCollectionsフォルダ の「 WebLibrary.cs 」を修正する。
■追加するコード①using TmxAutomationHelpers = Tmx.AutomationHelpers.UserCodeCollections;
■追加するコード②TmxAutomationHelpers.FullScreenshotLibrary.TakeFullScreenshot(null, 1500, 0);
return; - プログラム上で、TakeFullScreenshotメソッドに引数を設定する。
第1引数:「 null 」を使用してください。
※【補足1】を参照
第2引数:スクリーンショットの取得処理のみに対し、待機時間(ミリ秒・整数型)を設定できます。
※設定しなかった場合や1500未満の値を設定した場合は、初期値の1500ミリ秒が適用されます。
第3引数:スクリーンショットの取得に必要な操作の全工程に対し、追加の待機時間(ミリ秒・整数型)を設定できます。
※設定しなかった場合や0未満の値を設定した場合は、、初期値の0ミリ秒が適用されます。
ビルドに失敗した場合
ビルドに失敗した場合、下記のパッケージが不足している可能性があります。
- System.IO
- System.Linq
- System.Runtime.InteropServices
- System.Management
下記手順にて、パッケージを追加してください。
- パッケージ管理ダイアログを開く。
※ReportFullPageScreenshotメソッドからTakeFullScreenshotメソッドを呼び出している場合は、Ranorex Automation Helpersにパッケージを追加してください。
- パッケージを検索し、追加する。
- ライセンスに同意する。
補足
【補足1】TakeFullScreenshotの第1引数について
- 将来的に、ReportFullPageScreenshotメソッドの不具合が修正された場合に使用する、予約引数です。
- ReportFullPageScreenshotメソッドの不具合が修正された場合、この引数に、ReportFullPageScreenshotメソッドの引数に使用する「スクリーンショットしたいWebページを表すリポジトリアイテム」を設定します。この引数を使用するコードの修正方法については、ユーザコードコレクションファイル(FullScreenshotLibrary.cs)内のコメントを参照ください。
【補足2】開発者ツールのWindow化について
- フルスクリーンショットを取得する際、開発者ツールを使用します。
開発者ツールを開いたことにより、画面のデザインが変更されてしまう場合は、事前に開発者ツールをWindow化してください。
【補足3】Firefoxについて
- Firefoxで取得したスクリーンショットがフルスクリーンショットではなく、通常のスクリーンショットになっている場合があります。
この場合、「Ctrl+Shift+S」の後に表示される画面で、「Shift+Tab」を使用し、カーソルを「ページ全体を保存」に合わせてから、実行してください。
【補足4】重い環境での動作について
- マシンの動作が重い場合、メソッドの失敗率が高まります。
その場合、下記の対処をおこなってください。- TakeFullScreenshotメソッド実行前にディレイアクションを追加して、以前のアクションの結果が完全に反映された状態にする。
- TakeFullScreenshotメソッドの第3引数を使用して、画面の反映に余裕を持たせる。
【補足5】オフライン環境の場合について
- オフライン環境下では、パッケージ管理の「nuget.org」からパッケージを追加できません。
その場合、下記の対処をおこなってください。
※例として、「System.Management」パッケージのリンクが設定されています。- NuGet Galleryから対象パッケージのページを開く
- 画面右のメニュー > About > Download package をクリックし、.nupkgファイルをダウンロードする
- Ranorex > トップメニュー > ツール > オプション > パッケージ管理 > パッケージソース を開く
- 「…」ボタンから、手順2でダウンロードしたファイルが格納されているフォルダを参照する
- 追加したパッケージソースのチェックボックスを有効化し、OKボタンをクリックする
- Ranorex > トップメニュー > プロジェクト > パッケージの管理 を開く
- ダイアログ右上のドロップダウンにて、追加したパッケージソースを選択する
- 表示されたパッケージを追加する