フルスクリーンキャプチャを行った際に、スティッキー(固定)ヘッダー/スティッキー(固定)フッター、オーバーレイなどが複数キャプチャされないようにできますか?

フルスクリーンキャプチャのAPI(CaptureFullPageScreenshot)に、要素を固定にするパラメータ(WebDocument.CapturePageFlags.HidePositionFixed)を指定することで対応可能です。

コード例:
public void Report_Screenshot(RepoItemInfo webdocumentInfo)
{
var screenshot = webdocumentInfo.FindAdapter().CaptureFullPageScreenshot(WebDocument.CapturePageFlags.HidePositionFixed);
Report.LogData(ReportLevel.Info, “SCREEN SHOT”, (Bitmap)screenshot);
}

※オートメーションヘルパーのReportFullPageScreenshotメソッドを使用している場合は、レコーディングモジュールにメソッドを追加した後、該当アクション(User code)をダブルクリックし、表示されるソースコードにて、CaptureFullPageScreenshotメソッド(118行目あたり)に上記パラメーター(WebDocument.CapturePageFlags.HidePositionFixed)を追加してください。

制限事項:
・この対応策は、”position: fixed”のみに対応します。その他の方法で実装されているアプリケーションにおいては効果がありません。
・キャプチャした画像の最上位の位置にフッターの要素が固定されます。(最初に画面に表示された位置に固定)
・キャプチャ時に横スクロールがあり、かつヘッダー/フッターやオーバーレイの要素の横幅が固定値ではない場合、ヘッダー/フッターやオーバーレイの要素の画像は、
横スクロールで表示されていない部分に表示されずにキャプチャされます。(要素の画像が元のブラウザサイズに合わせて縮小されたままキャプチャされます)
キャプチャする際は、ブラウザを最大化し、横スクロールしないようにしてください。

 

制限事項により、上記方法が利用できない場合、
対象のヘッダー/フッター部を非表示にすることで対応する方法があります。

対応方法:
①Ranorex StudioでCaptureFullPageScreenshotメソッドを追加したレコーディングモジュールを開きます。
②リポジトリにヘッダー/フッター部のオブジェクトを記録します。
③CaptureFullPageScreenshotメソッドが追加されているUser codeアクションの前に、
以下のSetValueアクションを追加します(参考:)。
以下のようなアクション構成となります。
Action Name Value Repository item
SetValue Hidden True ヘッダー/フッター部のオブジェクト

※スクリーンショット取得後、アプリケーション画面にてヘッダーが非表示になるため、スクリーンショット後にヘッダーに対して何かしら操作を実施したい場合は、ページを再読み込みする操作をレコーディングモジュールに追加してください。