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

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();

引数

戻り値


toBeChecked

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

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

使用法

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

引数

  • options Object (optional)
    • checked boolean (optional)追加: v1.18#

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

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

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

    • timeout number (optional)追加: 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();

引数

戻り値


toBeEditable

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

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

使用法

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

引数

戻り値


toBeEmpty

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

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

使用法

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

引数

戻り値


toBeEnabled

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

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

使用法

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

引数

戻り値


toBeFocused

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

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

使用法

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

引数

戻り値


toBeHidden

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

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

使用法

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

引数

戻り値


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 (optional)
    • ratio number (optional)#

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

    • timeout number (optional)#

      アサーションを再試行するミリ秒単位の時間。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();

引数

戻り値


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');

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

<div class='list'>
<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 (optional)

戻り値


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 (optional)

    • ignoreCase boolean (optional)追加日: v1.23#

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

    • timeout number (optional)追加: v1.18#

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

    • useInnerText boolean (optional)追加: 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 (optional)

    • ignoreCase boolean (optional)#

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

    • timeout number (optional)#

      アサーションを再試行するミリ秒単位の時間。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 (optional)

    • ignoreCase boolean (optional)#

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

    • timeout number (optional)#

      アサーションを再試行するミリ秒単位の時間。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 (optional)

    • ignoreCase boolean (optional)#

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

    • timeout number (optional)#

      アサーションを再試行するミリ秒単位の時間。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 (optional)

    • ignoreCase boolean (optional)追加されたバージョン: v1.40#

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

    • timeout number (optional)追加: 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);

引数

戻り値


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']);

引数

戻り値


toHaveCount

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

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

使用法

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

引数

戻り値


toHaveCSS

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

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

使用法

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

引数

戻り値


toHaveId

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

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

使用法

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

引数

戻り値


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 (optional)

戻り値


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 (optional)

戻り値


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 (optional)

    • animations "disabled" | "allow" (optional)#

      "disabled"に設定すると、CSSアニメーション、CSSトランジション、Webアニメーションが停止します。アニメーションは期間によって異なる扱いを受けます。

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

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

    • caret "hide" | "initial" (optional)#

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

    • mask Array<Locator> (optional)#

      スクリーンショットを撮るときにマスクするロケーターを指定します。マスクされた要素は、境界ボックスを完全に覆うピンク色のボックス #FF00FF ( maskColor でカスタマイズ) で重ねて表示されます。マスクは非表示の要素にも適用されます。これを無効にするには、 可視要素のみを照合する を参照してください。

    • maskColor string (オプション)追加されたバージョン: v1.35#

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

    • maxDiffPixelRatio number (optional)#

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

    • maxDiffPixels number (optional)#

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

    • omitBackground boolean (optional)#

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

    • scale "css" | "device" (optional)#

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

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

    • stylePath string | Array<string> (オプション)追加日: v1.41#

      スクリーンショットを撮るときに適用するスタイルシートを含むファイル名。ここでは、動的要素を非表示にしたり、要素を非表示にしたり、プロパティを変更したりして、繰り返し可能なスクリーンショットを作成できます。このスタイルシートは Shadow DOM を通過し、内部フレームに適用されます。

    • threshold number (optional)#

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

    • timeout number (optional)#

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

戻り値


toHaveScreenshot(options)

追加日: v1.23 locatorAssertions.toHaveScreenshot(options)

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

使用法

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

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

引数

  • options Object (optional)
    • animations "disabled" | "allow" (optional)#

      "disabled"に設定すると、CSSアニメーション、CSSトランジション、Webアニメーションが停止します。アニメーションは期間によって異なる扱いを受けます。

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

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

    • caret "hide" | "initial" (optional)#

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

    • mask Array<Locator> (optional)#

      スクリーンショットを撮るときにマスクするロケーターを指定します。マスクされた要素は、境界ボックスを完全に覆うピンク色のボックス #FF00FF ( maskColor でカスタマイズ) で重ねて表示されます。マスクは非表示の要素にも適用されます。これを無効にするには、 可視要素のみを照合する を参照してください。

    • maskColor string (オプション)追加されたバージョン: v1.35#

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

    • maxDiffPixelRatio number (optional)#

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

    • maxDiffPixels number (optional)#

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

    • omitBackground boolean (optional)#

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

    • scale "css" | "device" (optional)#

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

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

    • stylePath string | Array<string> (オプション)追加日: v1.41#

      スクリーンショットを撮るときに適用するスタイルシートを含むファイル名。ここでは、動的要素を非表示にしたり、要素を非表示にしたり、プロパティを変更したりして、繰り返し可能なスクリーンショットを作成できます。このスタイルシートは Shadow DOM を通過し、内部フレームに適用されます。

    • threshold number (optional)#

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

    • timeout number (optional)#

      アサーションを再試行するミリ秒単位の時間。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 (optional)

    • ignoreCase boolean (optional)追加日: v1.23#

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

    • timeout number (optional)追加: v1.18#

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

    • useInnerText boolean (optional)追加: 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]/);

引数

戻り値


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

引数

戻り値


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?"
`);

引数

戻り値


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 (optional)
    • name string (optional)#

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

    • timeout number (optional)#

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

戻り値


プロパティ

not

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

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

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

使用法

expect(locator).not

タイプ