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

LocatorAssertions

LocatorAssertionsクラスは、テストにおけるLocatorの状態についてアサーションを行うために使用できるアサーションメソッドを提供します。

import { test, expect } from '@playwright/test';

test('status becomes submitted', async ({ page }) => {
// ...
await page.getByRole('button').click();
await expect(page.locator('.status')).toHaveText('Submitted');
});

メソッド

toBeAttached

追加バージョン: v1.33 locatorAssertions.toBeAttached

LocatorがDocumentまたはShadowRootに接続されている要素を指していることを保証します。

使用法

await expect(page.getByText('Hidden text')).toBeAttached();

引数

  • options Object (任意)
    • attached boolean (任意)#

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toBeChecked

追加バージョン: v1.20 locatorAssertions.toBeChecked

Locatorがチェックされた入力フィールドを指していることを保証します。

使用法

const locator = page.getByLabel('Subscribe to newsletter');
await expect(locator).toBeChecked();

引数

  • options Object (任意)
    • checked boolean (任意)追加バージョン: v1.18#

      アサートする状態を提供します。デフォルトでは、入力がチェックされていることをアサートします。このオプションは、indeterminateがtrueに設定されている場合は使用できません。

    • indeterminate boolean (任意)追加バージョン: v1.50#

      要素が不定(混合)状態であることをアサートします。チェックボックスとラジオボタンのみがサポートされます。このオプションは、checkedが提供されている場合はtrueにできません。

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toBeDisabled

追加バージョン: v1.20 locatorAssertions.toBeDisabled

Locatorが無効な要素を指していることを保証します。要素は"disabled"属性を持つ場合、または'aria-disabled'を介して無効にされている場合に無効と見なされます。HTMLのbuttoninputselecttextareaoptionoptgroupなどのネイティブコントロール要素のみが"disabled"属性を設定することで無効にできることに注意してください。他の要素の"disabled"属性はブラウザによって無視されます。

使用法

const locator = page.locator('button.submit');
await expect(locator).toBeDisabled();

引数

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toBeEditable

追加バージョン: v1.20 locatorAssertions.toBeEditable

Locatorが編集可能な要素を指していることを保証します。

使用法

const locator = page.getByRole('textbox');
await expect(locator).toBeEditable();

引数

  • options Object (任意)
    • editable boolean (任意)追加バージョン: v1.26#

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toBeEmpty

追加バージョン: v1.20 locatorAssertions.toBeEmpty

Locatorが空の編集可能な要素、またはテキストがないDOMノードを指していることを保証します。

使用法

const locator = page.locator('div.warning');
await expect(locator).toBeEmpty();

引数

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toBeEnabled

追加バージョン: v1.20 locatorAssertions.toBeEnabled

Locatorが有効な要素を指していることを保証します。

使用法

const locator = page.locator('button.submit');
await expect(locator).toBeEnabled();

引数

  • options Object (任意)
    • enabled boolean (任意)追加バージョン: v1.26#

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toBeFocused

追加バージョン: v1.20 locatorAssertions.toBeFocused

LocatorがフォーカスされたDOMノードを指していることを保証します。

使用法

const locator = page.getByRole('textbox');
await expect(locator).toBeFocused();

引数

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toBeHidden

追加バージョン: v1.20 locatorAssertions.toBeHidden

LocatorがいずれのDOMノードにも解決しないか、非表示のDOMノードに解決することを保証します。

使用法

const locator = page.locator('.my-element');
await expect(locator).toBeHidden();

引数

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toBeInViewport

追加バージョン: v1.31 locatorAssertions.toBeInViewport

Locatorが、Intersection Observer APIに従って、ビューポートと交差する要素を指していることを保証します。

使用法

const locator = page.getByRole('button');
// Make sure at least some part of element intersects viewport.
await expect(locator).toBeInViewport();
// Make sure element is fully outside of viewport.
await expect(locator).not.toBeInViewport();
// Make sure that at least half of the element intersects viewport.
await expect(locator).toBeInViewport({ ratio: 0.5 });

引数

  • options Object (任意)
    • ratio number (任意)#

      要素がビューポートと交差する最小比率。0の場合、要素は任意の正の比率でビューポートと交差する必要があります。デフォルトは0です。

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toBeVisible

追加バージョン: v1.20 locatorAssertions.toBeVisible

Locatorが、アタッチされ、かつ表示されているDOMノードを指していることを保証します。

リスト内の少なくとも1つの要素が表示されていることを確認するには、locator.first()を使用します。

使用法

// A specific element is visible.
await expect(page.getByText('Welcome')).toBeVisible();

// At least one item in the list is visible.
await expect(page.getByTestId('todo-item').first()).toBeVisible();

// At least one of the two elements is visible, possibly both.
await expect(
page.getByRole('button', { name: 'Sign in' })
.or(page.getByRole('button', { name: 'Sign up' }))
.first()
).toBeVisible();

引数

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

    • visible boolean (任意)追加バージョン: v1.26#

戻り値


toContainClass

追加バージョン: v1.52 locatorAssertions.toContainClass

Locatorが、指定されたCSSクラスを持つ要素を指していることを保証します。アサートされた値に含まれるすべてのクラス(スペースで区切られたもの)は、Element.classListに任意の順序で存在する必要があります。

使用法

<div class='middle selected row' id='component'></div>
const locator = page.locator('#component');
await expect(locator).toContainClass('middle selected row');
await expect(locator).toContainClass('selected');
await expect(locator).toContainClass('row middle');

配列が渡された場合、このメソッドは、特定された要素のリストが、対応する期待されるクラスリストのリストと一致することをアサートします。各要素のクラス属性は、配列内の対応するクラスと照合されます。

<div class='list'></div>
<div class='component inactive'></div>
<div class='component active'></div>
<div class='component inactive'></div>
</div>
const locator = page.locator('list > .component');
await expect(locator).toContainClass(['inactive', 'active', 'inactive']);

引数

  • expected string | Array<string>#

    期待されるクラス名をスペースで区切った文字列、または複数の要素をアサートするためのそのような文字列のリスト。

  • options Object (任意)

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toContainText

追加バージョン: v1.20 locatorAssertions.toContainText

Locatorが指定されたテキストを含む要素を指していることを保証します。要素のテキストコンテンツを計算する際、すべてのネストされた要素が考慮されます。値に正規表現を使用することもできます。

使用法

const locator = page.locator('.title');
await expect(locator).toContainText('substring');
await expect(locator).toContainText(/\d messages/);

期待値として配列を渡した場合、期待される内容は以下の通りです。

  1. Locatorは要素のリストに解決されます。
  2. このリストの**サブセット**の要素は、それぞれ期待される配列のテキストを含みます。
  3. 一致する要素のサブセットは、期待される配列と同じ順序です。
  4. 期待される配列の各テキスト値は、リストのいくつかの要素によって一致されます。

例えば、次のリストを考えます。

<ul>
<li>Item Text 1</li>
<li>Item Text 2</li>
<li>Item Text 3</li>
</ul>

アサーションをどのように使用できるか見てみましょう。

// ✓ Contains the right items in the right order
await expect(page.locator('ul > li')).toContainText(['Text 1', 'Text 3']);

// ✖ Wrong order
await expect(page.locator('ul > li')).toContainText(['Text 3', 'Text 2']);

// ✖ No item contains this text
await expect(page.locator('ul > li')).toContainText(['Some 33']);

// ✖ Locator points to the outer list element, not to the list items
await expect(page.locator('ul')).toContainText(['Text 3']);

引数

  • expected string | RegExp | Array<string | RegExp>追加バージョン: v1.18#

    期待される部分文字列または正規表現、またはそれらのリスト。

  • options Object (任意)

    • ignoreCase boolean (任意)追加バージョン: v1.23#

      大文字・小文字を区別しないマッチを実行するかどうか。ignoreCaseオプションは、指定された場合、対応する正規表現フラグよりも優先されます。

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

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

      DOMノードのテキストを取得する際に、element.textContentの代わりにelement.innerTextを使用するかどうか。

戻り値

詳細

expectedパラメーターが文字列の場合、Playwrightは、マッチングの前に、実際のテキストと期待される文字列の両方で空白と改行を正規化します。正規表現が使用される場合、実際のテキストはそのままマッチされます。


toHaveAccessibleDescription

追加バージョン: v1.44 locatorAssertions.toHaveAccessibleDescription

Locatorが、指定されたアクセシブルな説明を持つ要素を指していることを保証します。

使用法

const locator = page.getByTestId('save-button');
await expect(locator).toHaveAccessibleDescription('Save results to disk');

引数

  • description string | RegExp#

    期待されるアクセシブルな説明。

  • options Object (任意)

    • ignoreCase boolean (任意)#

      大文字・小文字を区別しないマッチを実行するかどうか。ignoreCaseオプションは、指定された場合、対応する正規表現フラグよりも優先されます。

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveAccessibleErrorMessage

追加バージョン: v1.50 locatorAssertions.toHaveAccessibleErrorMessage

Locatorが、指定されたaria errormessageを持つ要素を指していることを保証します。

使用法

const locator = page.getByTestId('username-input');
await expect(locator).toHaveAccessibleErrorMessage('Username is required.');

引数

  • errorMessage string | RegExp#

    期待されるアクセシブルなエラーメッセージ。

  • options Object (任意)

    • ignoreCase boolean (任意)#

      大文字・小文字を区別しないマッチを実行するかどうか。ignoreCaseオプションは、指定された場合、対応する正規表現フラグよりも優先されます。

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveAccessibleName

追加バージョン: v1.44 locatorAssertions.toHaveAccessibleName

Locatorが、指定されたアクセシブルな名前を持つ要素を指していることを保証します。

使用法

const locator = page.getByTestId('save-button');
await expect(locator).toHaveAccessibleName('Save to disk');

引数

  • name string | RegExp#

    期待されるアクセシブルな名前。

  • options Object (任意)

    • ignoreCase boolean (任意)#

      大文字・小文字を区別しないマッチを実行するかどうか。ignoreCaseオプションは、指定された場合、対応する正規表現フラグよりも優先されます。

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveAttribute(name, value)

追加バージョン: v1.20 locatorAssertions.toHaveAttribute(name, value)

Locatorが、指定された属性を持つ要素を指していることを保証します。

使用法

const locator = page.locator('input');
await expect(locator).toHaveAttribute('type', 'text');

引数

  • name string追加バージョン: v1.18#

    属性名。

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

    期待される属性値。

  • options Object (任意)

    • ignoreCase boolean (任意)追加バージョン: v1.40#

      大文字・小文字を区別しないマッチを実行するかどうか。ignoreCaseオプションは、指定された場合、対応する正規表現フラグよりも優先されます。

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveAttribute(name)

追加バージョン: v1.39 locatorAssertions.toHaveAttribute(name)

Locatorが指定された属性を持つ要素を指していることを保証します。このメソッドは属性の存在をアサートします。

const locator = page.locator('input');
// Assert attribute existence.
await expect(locator).toHaveAttribute('disabled');
await expect(locator).not.toHaveAttribute('open');

使用法

await expect(locator).toHaveAttribute(name);
await expect(locator).toHaveAttribute(name, options);

引数

  • name string#

    属性名。

  • options Object (任意)

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveClass

追加バージョン: v1.20 locatorAssertions.toHaveClass

Locatorが、指定されたCSSクラスを持つ要素を指していることを保証します。文字列が提供された場合、要素のclass属性と完全に一致する必要があります。個別のクラスを照合するには、expect(locator).toContainClass()を使用します。

使用法

<div class='middle selected row' id='component'></div>
const locator = page.locator('#component');
await expect(locator).toHaveClass('middle selected row');
await expect(locator).toHaveClass(/(^|\s)selected(\s|$)/);

配列が渡された場合、このメソッドは、特定された要素のリストが、対応する期待されるクラス値のリストと一致することをアサートします。各要素のクラス属性は、配列内の対応する文字列または正規表現と照合されます。

const locator = page.locator('list > .component');
await expect(locator).toHaveClass(['component', 'component selected', 'component']);

引数

  • expected string | RegExp | Array<string | RegExp>追加バージョン: v1.18#

    期待されるクラスまたは正規表現、またはそれらのリスト。

  • options Object (任意)

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveCount

追加バージョン: v1.20 locatorAssertions.toHaveCount

Locatorが正確な数のDOMノードに解決されることを保証します。

使用法

const list = page.locator('list > .component');
await expect(list).toHaveCount(3);

引数

  • count number追加バージョン: v1.18#

    期待される数。

  • options Object (任意)

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveCSS

追加バージョン: v1.20 locatorAssertions.toHaveCSS

Locatorが、指定された計算済みCSSスタイルを持つ要素に解決されることを保証します。

使用法

const locator = page.getByRole('button');
await expect(locator).toHaveCSS('display', 'flex');

引数

  • name string追加バージョン: v1.18#

    CSSプロパティ名。

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

    CSSプロパティ値。

  • options Object (任意)

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveId

追加バージョン: v1.20 locatorAssertions.toHaveId

Locatorが、指定されたDOMノードIDを持つ要素を指していることを保証します。

使用法

const locator = page.getByRole('textbox');
await expect(locator).toHaveId('lastname');

引数

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

    要素ID。

  • options Object (任意)

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveJSProperty

追加バージョン: v1.20 locatorAssertions.toHaveJSProperty

Locatorが、指定されたJavaScriptプロパティを持つ要素を指していることを保証します。このプロパティは、プリミティブ型だけでなく、プレーンなシリアル化可能なJavaScriptオブジェクトであってもよいことに注意してください。

使用法

const locator = page.locator('.component');
await expect(locator).toHaveJSProperty('loaded', true);

引数

  • name string追加バージョン: v1.18#

    プロパティ名。

  • value Object追加バージョン: v1.18#

    プロパティ値。

  • options Object (任意)

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveRole

追加バージョン: v1.44 locatorAssertions.toHaveRole

Locatorが、指定されたARIAロールを持つ要素を指していることを保証します。

ロールは文字列として一致し、ARIAロール階層は無視されることに注意してください。たとえば、サブクラスロール"switch"を持つ要素に対してスーパークラスロール"checkbox"をアサートすると失敗します。

使用法

const locator = page.getByTestId('save-button');
await expect(locator).toHaveRole('button');

引数

  • role "alert" | "alertdialog" | "application" | "article" | "banner" | "blockquote" | "button" | "caption" | "cell" | "checkbox" | "code" | "columnheader" | "combobox" | "complementary" | "contentinfo" | "definition" | "deletion" | "dialog" | "directory" | "document" | "emphasis" | "feed" | "figure" | "form" | "generic" | "grid" | "gridcell" | "group" | "heading" | "img" | "insertion" | "link" | "list" | "listbox" | "listitem" | "log" | "main" | "marquee" | "math" | "meter" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "navigation" | "none" | "note" | "option" | "paragraph" | "presentation" | "progressbar" | "radio" | "radiogroup" | "region" | "row" | "rowgroup" | "rowheader" | "scrollbar" | "search" | "searchbox" | "separator" | "slider" | "spinbutton" | "status" | "strong" | "subscript" | "superscript" | "switch" | "tab" | "table" | "tablist" | "tabpanel" | "term" | "textbox" | "time" | "timer" | "toolbar" | "tooltip" | "tree" | "treegrid" | "treeitem"#

    必須のariaロール。

  • options Object (任意)

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveScreenshot(name)

追加バージョン: v1.23 locatorAssertions.toHaveScreenshot(name)

この関数は、2つの連続したロケータースクリーンショットが同じ結果を生成するまで待ち、最後のスクリーンショットを期待値と比較します。

使用法

const locator = page.getByRole('button');
await expect(locator).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"です。

    • 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色空間における許容される知覚色差。ゼロ(厳密)から1(緩やか)の間で、デフォルトはTestConfig.expectで設定可能です。デフォルトは0.2です。

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveScreenshot(options)

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

この関数は、2つの連続したロケータースクリーンショットが同じ結果を生成するまで待ち、最後のスクリーンショットを期待値と比較します。

使用法

const locator = page.getByRole('button');
await expect(locator).toHaveScreenshot();

スクリーンショットアサーションはPlaywrightテストランナーでのみ機能することに注意してください。

引数

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

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

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

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

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

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

    • 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色空間における許容される知覚色差。ゼロ(厳密)から1(緩やか)の間で、デフォルトはTestConfig.expectで設定可能です。デフォルトは0.2です。

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveText

追加バージョン: v1.20 locatorAssertions.toHaveText

Locatorが指定されたテキストを持つ要素を指していることを保証します。要素のテキストコンテンツを計算する際、すべてのネストされた要素が考慮されます。値に正規表現を使用することもできます。

使用法

const locator = page.locator('.title');
await expect(locator).toHaveText(/Welcome, Test User/);
await expect(locator).toHaveText(/Welcome, .*/);

期待値として配列を渡した場合、期待される内容は以下の通りです。

  1. Locatorは要素のリストに解決されます。
  2. 要素の数は、配列内の期待値の数と等しくなります。
  3. リストの要素は、期待される配列の値を1つずつ、順に一致するテキストを持っています。

例えば、次のリストを考えます。

<ul>
<li>Text 1</li>
<li>Text 2</li>
<li>Text 3</li>
</ul>

アサーションをどのように使用できるか見てみましょう。

// ✓ Has the right items in the right order
await expect(page.locator('ul > li')).toHaveText(['Text 1', 'Text 2', 'Text 3']);

// ✖ Wrong order
await expect(page.locator('ul > li')).toHaveText(['Text 3', 'Text 2', 'Text 1']);

// ✖ Last item does not match
await expect(page.locator('ul > li')).toHaveText(['Text 1', 'Text 2', 'Text']);

// ✖ Locator points to the outer list element, not to the list items
await expect(page.locator('ul')).toHaveText(['Text 1', 'Text 2', 'Text 3']);

引数

  • expected string | RegExp | Array<string | RegExp>追加バージョン: v1.18#

    期待される文字列または正規表現、またはそれらのリスト。

  • options Object (任意)

    • ignoreCase boolean (任意)追加バージョン: v1.23#

      大文字・小文字を区別しないマッチを実行するかどうか。ignoreCaseオプションは、指定された場合、対応する正規表現フラグよりも優先されます。

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

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

      DOMノードのテキストを取得する際に、element.textContentの代わりにelement.innerTextを使用するかどうか。

戻り値

詳細

expectedパラメーターが文字列の場合、Playwrightは、マッチングの前に、実際のテキストと期待される文字列の両方で空白と改行を正規化します。正規表現が使用される場合、実際のテキストはそのままマッチされます。


toHaveValue

追加バージョン: v1.20 locatorAssertions.toHaveValue

Locatorが、指定された入力値を持つ要素を指していることを保証します。値に正規表現を使用することもできます。

使用法

const locator = page.locator('input[type=number]');
await expect(locator).toHaveValue(/[0-9]/);

引数

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

    期待される値。

  • options Object (任意)

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

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toHaveValues

追加バージョン: v1.23 locatorAssertions.toHaveValues

Locatorがマルチ選択/コンボボックス(つまりmultiple属性を持つselect)を指し、指定された値が選択されていることを保証します。

使用法

例えば、次の要素がある場合

<select id="favorite-colors" multiple>
<option value="R">Red</option>
<option value="G">Green</option>
<option value="B">Blue</option>
</select>
const locator = page.locator('id=favorite-colors');
await locator.selectOption(['R', 'G']);
await expect(locator).toHaveValues([/R/, /G/]);

引数

  • values Array<string | RegExp>#

    現在選択されている期待されるオプション。

  • options Object (任意)

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toMatchAriaSnapshot(expected)

追加バージョン: v1.49 locatorAssertions.toMatchAriaSnapshot(expected)

ターゲット要素が指定されたアクセシビリティスナップショットに一致することをアサートします。

使用法

await page.goto('https://demo.playwright.dev/todomvc/');
await expect(page.locator('body')).toMatchAriaSnapshot(`
- heading "todos"
- textbox "What needs to be done?"
`);

引数

  • expected string#
  • options Object (任意)
    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


toMatchAriaSnapshot(options)

追加バージョン: v1.50 locatorAssertions.toMatchAriaSnapshot(options)

ターゲット要素が指定されたアクセシビリティスナップショットに一致することをアサートします。

スナップショットは、設定ファイルでexpect.toMatchAriaSnapshot.pathTemplateおよび/またはsnapshotPathTemplateプロパティによって設定された場所に、個別の.aria.ymlファイルとして保存されます。

使用法

await expect(page.locator('body')).toMatchAriaSnapshot();
await expect(page.locator('body')).toMatchAriaSnapshot({ name: 'body.aria.yml' });

引数

  • options Object (任意)
    • name string (任意)#

      このテストに対応するスナップショットフォルダに保存するスナップショットの名前。指定しない場合は連番の名前が生成されます。

    • timeout number (任意)#

      アサーションをリトライする時間 (ミリ秒)。デフォルトはTestConfig.expecttimeoutです。

戻り値


プロパティ

not

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

アサーションが反対の条件をチェックするようにします。例えば、このコードはLocatorがテキスト"error"を含まないことをテストします。

await expect(locator).not.toContainText('error');

使用法

expect(locator).not

タイプ