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

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

LocatorDocument または 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#

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

    • timeout number (オプション)追加: v1.18#

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

戻り値


toBeDisabled

追加: v1.20 locatorAssertions.toBeDisabled

Locator が無効な要素を指していることを保証します。要素は、"disabled" 属性を持っているか、'aria-disabled' を介して無効になっている場合に無効になります。 "disabled" 属性によって無効にできるのは、HTML buttoninputselecttextareaoptionoptgroup などのネイティブコントロール要素のみであることに注意してください。他の要素の "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

LocatorIntersection 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#

戻り値


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#

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

  • 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 属性と完全に一致する必要があります。個々のクラスに一致させるか、部分一致を実行するには、正規表現を使用してください。

使用法

<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|$)/);

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

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

引数

  • expected string | RegExp | Array<string | RegExp>追加: v1.18#

    期待されるクラス、RegExp、またはそれらのリスト。

  • 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 Animations が停止します。アニメーションは、その期間に応じて異なる扱いを受けます。

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

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

    • caret "hide" | "initial" (オプション)#

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

    • mask Array<Locator> (オプション)#

      スクリーンショットを撮るときにマスクする必要があるロケーターを指定します。マスクされた要素は、そのバウンディングボックスを完全に覆うピンク色のボックス #FF00FF (maskColor でカスタマイズ) でオーバーレイされます。マスクは非表示の要素にも適用されます。それを無効にするには、可視要素のみをマッチングを参照してください。

    • maskColor string (オプション)Added in: 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> (オプション)Added in: 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 Animations が停止します。アニメーションは、その期間に応じて異なる扱いを受けます。

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

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

    • caret "hide" | "initial" (オプション)#

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

    • mask Array<Locator> (オプション)#

      スクリーンショットを撮るときにマスクする必要があるロケーターを指定します。マスクされた要素は、そのバウンディングボックスを完全に覆うピンク色のボックス #FF00FF (maskColor でカスタマイズ) でオーバーレイされます。マスクは非表示の要素にも適用されます。それを無効にするには、可視要素のみをマッチングを参照してください。

    • maskColor string (オプション)Added in: 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> (オプション)Added in: 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. リストの要素は、期待される配列の値と順番に一つずつ一致するテキストを持ちます。

たとえば、次のリストを考えてみましょう。

<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#

    期待される文字列または RegExp、またはそれらのリスト。

  • 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)

Added in: 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