PageAssertions
PageAssertions クラスは、テストで Page の状態に関するアサーションを行うために使用できるアサーションメソッドを提供します。
import { test, expect } from '@playwright/test';
test('navigates to login', async ({ page }) => {
// ...
await page.getByText('Sign in').click();
await expect(page).toHaveURL(/.*\/login/);
});
メソッド
toHaveScreenshot(name)
追加バージョン: v1.23この関数は、2つの連続したページスクリーンショットが同じ結果になるまで待機し、最後のスクリーンショットを期待値と比較します。
使用法
await expect(page).toHaveScreenshot('image.png');
スクリーンショットのアサーションはPlaywrightテストランナーでのみ機能します。
引数
-
スナップショット名。
-
options
Object (任意)-
animations
"disabled" | "allow" (任意)#"disabled"
に設定すると、CSSアニメーション、CSSトランジション、Webアニメーションを停止します。アニメーションは、その持続時間に応じて異なる扱いを受けます。- 有限アニメーションは完了まで早送りされ、
transitionend
イベントを発生させます。 - 無限アニメーションは初期状態にキャンセルされ、スクリーンショットの後に再生されます。
デフォルトはアニメーションを無効にする
"disabled"
です。 - 有限アニメーションは完了まで早送りされ、
-
caret
"hide" | "initial" (任意)#"hide"
に設定すると、スクリーンショットはテキストキャレットを非表示にします。"initial"
に設定すると、テキストキャレットの動作は変更されません。デフォルトは"hide"
です。 -
結果の画像のクリッピングを指定するオブジェクト。
-
trueの場合、現在表示されているビューポートではなく、スクロール可能なページの全体スクリーンショットを撮ります。デフォルトは
false
です。 -
スクリーンショット撮影時にマスクされるロケーターを指定します。マスクされた要素は、そのバウンディングボックスを完全に覆うピンク色のボックス
#FF00FF
(maskColorでカスタマイズ可能)でオーバーレイされます。マスクは不可視要素にも適用されます。可視要素のみに一致させることで無効にできます。 -
maskColor
string (任意)追加バージョン: v1.35#マスクされた要素のオーバーレイボックスの色をCSSカラー形式で指定します。デフォルトの色はピンクの
#FF00FF
です。 -
maxDiffPixelRatio
number (任意)#異なるピクセルの総ピクセル数に対する許容比率で、
0
から1
の間です。デフォルトはTestConfig.expect
で設定可能です。デフォルトでは未設定です。 -
異なる可能性のあるピクセルの許容数です。デフォルトは
TestConfig.expect
で設定可能です。デフォルトでは未設定です。 -
デフォルトの白い背景を非表示にし、透過性のあるスクリーンショットをキャプチャできるようにします。
jpeg
画像には適用されません。デフォルトはfalse
です。 -
scale
"css" | "device" (任意)#"css"
に設定すると、スクリーンショットはページのCSSピクセルごとに1つのピクセルを持ちます。高DPIデバイスの場合、スクリーンショットは小さく保たれます。"device"
オプションを使用すると、デバイスのピクセルごとに1つのピクセルが生成されるため、高DPIデバイスのスクリーンショットは2倍以上大きくなります。デフォルトは
"css"
です。 -
stylePath
string | Array<string> (任意)追加バージョン: v1.41#スクリーンショット作成時に適用するスタイルシートを含むファイル名です。ここでは、動的要素を非表示にしたり、要素を不可視にしたり、そのプロパティを変更したりして、再現可能なスクリーンショットを作成するのに役立ちます。このスタイルシートはShadow DOMを突き抜け、内部のフレームに適用されます。
-
比較される画像内で同じピクセル間のYIQ色空間における許容される知覚的な色の差で、0(厳密)から1(緩やか)の間です。デフォルトは
TestConfig.expect
で設定可能です。デフォルトは0.2
です。 -
アサーションを再試行する時間(ミリ秒単位)。デフォルトは
TestConfig.expect
のtimeout
です。
-
戻り値
toHaveScreenshot(options)
追加バージョン: v1.23この関数は、2つの連続したページスクリーンショットが同じ結果になるまで待機し、最後のスクリーンショットを期待値と比較します。
使用法
await expect(page).toHaveScreenshot();
スクリーンショットのアサーションはPlaywrightテストランナーでのみ機能します。
引数
options
Object (任意)-
animations
"disabled" | "allow" (任意)#"disabled"
に設定すると、CSSアニメーション、CSSトランジション、Webアニメーションを停止します。アニメーションは、その持続時間に応じて異なる扱いを受けます。- 有限アニメーションは完了まで早送りされ、
transitionend
イベントを発生させます。 - 無限アニメーションは初期状態にキャンセルされ、スクリーンショットの後に再生されます。
デフォルトはアニメーションを無効にする
"disabled"
です。 - 有限アニメーションは完了まで早送りされ、
-
caret
"hide" | "initial" (任意)#"hide"
に設定すると、スクリーンショットはテキストキャレットを非表示にします。"initial"
に設定すると、テキストキャレットの動作は変更されません。デフォルトは"hide"
です。 -
結果の画像のクリッピングを指定するオブジェクト。
-
trueの場合、現在表示されているビューポートではなく、スクロール可能なページの全体スクリーンショットを撮ります。デフォルトは
false
です。 -
スクリーンショット撮影時にマスクされるロケーターを指定します。マスクされた要素は、そのバウンディングボックスを完全に覆うピンク色のボックス
#FF00FF
(maskColorでカスタマイズ可能)でオーバーレイされます。マスクは不可視要素にも適用されます。可視要素のみに一致させることで無効にできます。 -
maskColor
string (任意)追加バージョン: v1.35#マスクされた要素のオーバーレイボックスの色をCSSカラー形式で指定します。デフォルトの色はピンクの
#FF00FF
です。 -
maxDiffPixelRatio
number (任意)#異なるピクセルの総ピクセル数に対する許容比率で、
0
から1
の間です。デフォルトはTestConfig.expect
で設定可能です。デフォルトでは未設定です。 -
異なる可能性のあるピクセルの許容数です。デフォルトは
TestConfig.expect
で設定可能です。デフォルトでは未設定です。 -
デフォルトの白い背景を非表示にし、透過性のあるスクリーンショットをキャプチャできるようにします。
jpeg
画像には適用されません。デフォルトはfalse
です。 -
scale
"css" | "device" (任意)#"css"
に設定すると、スクリーンショットはページのCSSピクセルごとに1つのピクセルを持ちます。高DPIデバイスの場合、スクリーンショットは小さく保たれます。"device"
オプションを使用すると、デバイスのピクセルごとに1つのピクセルが生成されるため、高DPIデバイスのスクリーンショットは2倍以上大きくなります。デフォルトは
"css"
です。 -
stylePath
string | Array<string> (任意)追加バージョン: v1.41#スクリーンショット作成時に適用するスタイルシートを含むファイル名です。ここでは、動的要素を非表示にしたり、要素を不可視にしたり、そのプロパティを変更したりして、再現可能なスクリーンショットを作成するのに役立ちます。このスタイルシートはShadow DOMを突き抜け、内部のフレームに適用されます。
-
比較される画像内で同じピクセル間のYIQ色空間における許容される知覚的な色の差で、0(厳密)から1(緩やか)の間です。デフォルトは
TestConfig.expect
で設定可能です。デフォルトは0.2
です。 -
アサーションを再試行する時間(ミリ秒単位)。デフォルトは
TestConfig.expect
のtimeout
です。
-
戻り値
toHaveTitle
追加バージョン: v1.20ページが指定されたタイトルを持つことを保証します。
使用法
await expect(page).toHaveTitle(/.*checkout/);
引数
戻り値
toHaveURL
追加バージョン: v1.20ページが指定されたURLに遷移していることを保証します。
使用法
// Check for the page URL to be 'https://playwright.dokyumento.jp/docs/intro' (including query string)
await expect(page).toHaveURL('https://playwright.dokyumento.jp/docs/intro');
// Check for the page URL to contain 'doc', followed by an optional 's', followed by '/'
await expect(page).toHaveURL(/docs?\//);
// Check for the predicate to be satisfied
// For example: verify query strings
await expect(page).toHaveURL(url => {
const params = url.searchParams;
return params.has('search') && params.has('options') && params.get('id') === '5';
});
引数
-
url
string | RegExp | function(URL):boolean追加バージョン: v1.18#期待されるURL文字列、正規表現、またはURLを受け取る述語(関数)。コンテキストオプションでbaseURLが提供され、
url
引数が文字列の場合、2つの値はnew URL()
コンストラクターによって結合され、現在のブラウザURLとの比較に使用されます。 -
options
Object (任意)-
ignoreCase
boolean (任意)追加バージョン: v1.44#大文字・小文字を区別しない一致を実行するかどうか。指定されている場合、ignoreCaseオプションは対応する正規表現パラメータよりも優先されます。提供された述語はこのフラグを無視します。
-
timeout
number (任意)追加バージョン: v1.18#アサーションを再試行する時間(ミリ秒単位)。デフォルトは
TestConfig.expect
のtimeout
です。
-
戻り値
プロパティ
not
追加バージョン: v1.20アサーションを逆の条件でチェックするようにします。例えば、このコードはページのURLに"error"
が含まれていないことをテストします。
await expect(page).not.toHaveURL('error');
使用法
expect(page).not
型