メインコンテンツにスキップ

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 pageAssertions.toHaveScreenshot(name)

この関数は、2つの連続したページスクリーンショットが同じ結果になるまで待機し、最後のスクリーンショットを期待値と比較します。

使用法

await expect(page).toHaveScreenshot('image.png');

スクリーンショットのアサーションはPlaywrightテストランナーでのみ機能します。

引数

  • name string | Array<string>#

    スナップショット名。

  • options Object (任意)

    • animations "disabled" | "allow" (任意)#

      "disabled"に設定すると、CSSアニメーション、CSSトランジション、Webアニメーションを停止します。アニメーションは、その持続時間に応じて異なる扱いを受けます。

      • 有限アニメーションは完了まで早送りされ、transitionendイベントを発生させます。
      • 無限アニメーションは初期状態にキャンセルされ、スクリーンショットの後に再生されます。

      デフォルトはアニメーションを無効にする"disabled"です。

    • caret "hide" | "initial" (任意)#

      "hide"に設定すると、スクリーンショットはテキストキャレットを非表示にします。"initial"に設定すると、テキストキャレットの動作は変更されません。デフォルトは"hide"です。

    • clip Object (任意)#

      • x number

        クリップ領域の左上隅のx座標

      • y number

        クリップ領域の左上隅のy座標

      • width number

        クリッピング領域の幅

      • height number

        クリッピング領域の高さ

      結果の画像のクリッピングを指定するオブジェクト。

    • fullPage boolean (任意)#

      trueの場合、現在表示されているビューポートではなく、スクロール可能なページの全体スクリーンショットを撮ります。デフォルトはfalseです。

    • mask Array<Locator> (任意)#

      スクリーンショット撮影時にマスクされるロケーターを指定します。マスクされた要素は、そのバウンディングボックスを完全に覆うピンク色のボックス#FF00FFmaskColorでカスタマイズ可能)でオーバーレイされます。マスクは不可視要素にも適用されます。可視要素のみに一致させることで無効にできます。

    • maskColor string (任意)追加バージョン: v1.35#

      マスクされた要素のオーバーレイボックスの色をCSSカラー形式で指定します。デフォルトの色はピンクの#FF00FFです。

    • maxDiffPixelRatio number (任意)#

      異なるピクセルの総ピクセル数に対する許容比率で、0から1の間です。デフォルトはTestConfig.expectで設定可能です。デフォルトでは未設定です。

    • maxDiffPixels number (任意)#

      異なる可能性のあるピクセルの許容数です。デフォルトはTestConfig.expectで設定可能です。デフォルトでは未設定です。

    • omitBackground boolean (任意)#

      デフォルトの白い背景を非表示にし、透過性のあるスクリーンショットをキャプチャできるようにします。jpeg画像には適用されません。デフォルトはfalseです。

    • scale "css" | "device" (任意)#

      "css"に設定すると、スクリーンショットはページのCSSピクセルごとに1つのピクセルを持ちます。高DPIデバイスの場合、スクリーンショットは小さく保たれます。"device"オプションを使用すると、デバイスのピクセルごとに1つのピクセルが生成されるため、高DPIデバイスのスクリーンショットは2倍以上大きくなります。

      デフォルトは"css"です。

    • stylePath string | Array<string> (任意)追加バージョン: v1.41#

      スクリーンショット作成時に適用するスタイルシートを含むファイル名です。ここでは、動的要素を非表示にしたり、要素を不可視にしたり、そのプロパティを変更したりして、再現可能なスクリーンショットを作成するのに役立ちます。このスタイルシートはShadow DOMを突き抜け、内部のフレームに適用されます。

    • threshold number (任意)#

      比較される画像内で同じピクセル間のYIQ色空間における許容される知覚的な色の差で、0(厳密)から1(緩やか)の間です。デフォルトはTestConfig.expectで設定可能です。デフォルトは0.2です。

    • timeout number (任意)#

      アサーションを再試行する時間(ミリ秒単位)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveScreenshot(options)

追加バージョン: v1.23 pageAssertions.toHaveScreenshot(options)

この関数は、2つの連続したページスクリーンショットが同じ結果になるまで待機し、最後のスクリーンショットを期待値と比較します。

使用法

await expect(page).toHaveScreenshot();

スクリーンショットのアサーションはPlaywrightテストランナーでのみ機能します。

引数

  • options Object (任意)
    • animations "disabled" | "allow" (任意)#

      "disabled"に設定すると、CSSアニメーション、CSSトランジション、Webアニメーションを停止します。アニメーションは、その持続時間に応じて異なる扱いを受けます。

      • 有限アニメーションは完了まで早送りされ、transitionendイベントを発生させます。
      • 無限アニメーションは初期状態にキャンセルされ、スクリーンショットの後に再生されます。

      デフォルトはアニメーションを無効にする"disabled"です。

    • caret "hide" | "initial" (任意)#

      "hide"に設定すると、スクリーンショットはテキストキャレットを非表示にします。"initial"に設定すると、テキストキャレットの動作は変更されません。デフォルトは"hide"です。

    • clip Object (任意)#

      • x number

        クリップ領域の左上隅のx座標

      • y number

        クリップ領域の左上隅のy座標

      • width number

        クリッピング領域の幅

      • height number

        クリッピング領域の高さ

      結果の画像のクリッピングを指定するオブジェクト。

    • fullPage boolean (任意)#

      trueの場合、現在表示されているビューポートではなく、スクロール可能なページの全体スクリーンショットを撮ります。デフォルトはfalseです。

    • mask Array<Locator> (任意)#

      スクリーンショット撮影時にマスクされるロケーターを指定します。マスクされた要素は、そのバウンディングボックスを完全に覆うピンク色のボックス#FF00FFmaskColorでカスタマイズ可能)でオーバーレイされます。マスクは不可視要素にも適用されます。可視要素のみに一致させることで無効にできます。

    • maskColor string (任意)追加バージョン: v1.35#

      マスクされた要素のオーバーレイボックスの色をCSSカラー形式で指定します。デフォルトの色はピンクの#FF00FFです。

    • maxDiffPixelRatio number (任意)#

      異なるピクセルの総ピクセル数に対する許容比率で、0から1の間です。デフォルトはTestConfig.expectで設定可能です。デフォルトでは未設定です。

    • maxDiffPixels number (任意)#

      異なる可能性のあるピクセルの許容数です。デフォルトはTestConfig.expectで設定可能です。デフォルトでは未設定です。

    • omitBackground boolean (任意)#

      デフォルトの白い背景を非表示にし、透過性のあるスクリーンショットをキャプチャできるようにします。jpeg画像には適用されません。デフォルトはfalseです。

    • scale "css" | "device" (任意)#

      "css"に設定すると、スクリーンショットはページのCSSピクセルごとに1つのピクセルを持ちます。高DPIデバイスの場合、スクリーンショットは小さく保たれます。"device"オプションを使用すると、デバイスのピクセルごとに1つのピクセルが生成されるため、高DPIデバイスのスクリーンショットは2倍以上大きくなります。

      デフォルトは"css"です。

    • stylePath string | Array<string> (任意)追加バージョン: v1.41#

      スクリーンショット作成時に適用するスタイルシートを含むファイル名です。ここでは、動的要素を非表示にしたり、要素を不可視にしたり、そのプロパティを変更したりして、再現可能なスクリーンショットを作成するのに役立ちます。このスタイルシートはShadow DOMを突き抜け、内部のフレームに適用されます。

    • threshold number (任意)#

      比較される画像内で同じピクセル間のYIQ色空間における許容される知覚的な色の差で、0(厳密)から1(緩やか)の間です。デフォルトはTestConfig.expectで設定可能です。デフォルトは0.2です。

    • timeout number (任意)#

      アサーションを再試行する時間(ミリ秒単位)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveTitle

追加バージョン: v1.20 pageAssertions.toHaveTitle

ページが指定されたタイトルを持つことを保証します。

使用法

await expect(page).toHaveTitle(/.*checkout/);

引数

  • titleOrRegExp string | RegExp追加バージョン: v1.18#

    期待されるタイトルまたは正規表現。

  • options Object (任意)

    • timeout number (任意)追加バージョン: v1.18#

      アサーションを再試行する時間(ミリ秒単位)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveURL

追加バージョン: v1.20 pageAssertions.toHaveURL

ページが指定された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.expecttimeoutです。

戻り値


プロパティ

not

追加バージョン: v1.20 pageAssertions.not

アサーションを逆の条件でチェックするようにします。例えば、このコードはページのURLに"error"が含まれていないことをテストします。

await expect(page).not.toHaveURL('error');

使用法

expect(page).not