跳到主要內容

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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


toBeEmpty

新增於: v1.20 locatorAssertions.toBeEmpty

確保 Locator 指向一個空的、可編輯的元素,或指向一個沒有文字的 DOM 節點。

用法

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

參數

  • options Object (選填)
    • timeout number (選填)新增於: v1.18#

      以毫秒為單位重試斷言的時間。預設為 TestConfig.expect 中的 timeout

返回


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.expect 中的 timeout

返回


toBeFocused

新增於: v1.20 locatorAssertions.toBeFocused

確保 Locator 指向一個已聚焦的 DOM 節點。

用法

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

參數

  • options Object (選填)
    • timeout number (選填)新增於: v1.18#

      以毫秒為單位重試斷言的時間。預設為 TestConfig.expect 中的 timeout

返回


toBeHidden

新增於: v1.20 locatorAssertions.toBeHidden

確保 Locator 沒有解析為任何 DOM 節點,或解析為一個不可見的節點。

用法

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

參數

  • options Object (選填)
    • timeout number (選填)新增於: v1.18#

      以毫秒為單位重試斷言的時間。預設為 TestConfig.expect 中的 timeout

返回


toBeInViewport

新增於: v1.31 locatorAssertions.toBeInViewport

確保 Locator 指向一個與 viewport 相交的元素,根據 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 (選填)#

      元素與 viewport 相交的最小比例。如果等於 0,則元素應以任何正比例與 viewport 相交。預設為 0

    • timeout number (選填)#

      以毫秒為單位重試斷言的時間。預設為 TestConfig.expect 中的 timeout

返回


toBeVisible

新增於: v1.20 locatorAssertions.toBeVisible

確保 Locator 指向一個已附加且可見的 DOM 節點。

若要檢查列表中是否至少有一個元素可見,請使用 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.expect 中的 timeout

    • 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.expect 中的 timeout

    • useInnerText boolean (選填)新增於: v1.18#

      在檢索 DOM 節點文字時,是否使用 element.innerText 而不是 element.textContent

返回

詳細資訊

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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


toHaveScreenshot(name)

新增於: v1.23 locatorAssertions.toHaveScreenshot(name)

此函式會等待直到連續兩次的 locator 螢幕截圖產生相同的結果,然後將最後的螢幕截圖與預期的結果進行比較。

用法

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> (選填)#

      指定在擷取螢幕截圖時應遮罩的 locator。遮罩的元素將會以粉紅色方框 #FF00FF(可透過 maskColor 自訂)覆蓋,完全遮蓋其邊界框。

    • maskColor string (選填)新增於:v1.35#

      指定遮罩元素的覆蓋方框顏色,以 CSS 色彩格式表示。預設顏色為粉紅色 #FF00FF

    • maxDiffPixelRatio number (選填)#

      可接受的不同像素與總像素量的比率,介於 01 之間。預設值可透過 TestConfig.expect 設定。預設為未設定。

    • maxDiffPixels number (選填)#

      可接受的不同像素量。預設值可透過 TestConfig.expect 設定。預設為未設定。

    • omitBackground boolean (選填)#

      隱藏預設的白色背景,並允許擷取具有透明度的螢幕截圖。不適用於 jpeg 圖片。預設為 false

    • scale "css" | "device" (選填)#

      當設定為 "css" 時,螢幕截圖的每個 CSS 像素將會有一個像素。對於高 DPI 裝置,這將使螢幕截圖保持較小。使用 "device" 選項將為每個裝置像素產生一個像素,因此高 DPI 裝置的螢幕截圖將會大兩倍甚至更大。

      預設為 "css"

    • stylePath string | Array<string> (選填)新增於:v1.41#

      包含在製作螢幕截圖時要套用的樣式表的檔案名稱。您可以在此處隱藏動態元素、使元素不可見或變更其屬性,以協助您建立可重複的螢幕截圖。此樣式表會穿透 Shadow DOM 並套用至內部框架。

    • threshold number (選填)#

      在比較影像中相同像素之間,可接受的 YIQ 色彩空間感知色彩差異,介於零(嚴格)和一(寬鬆)之間,預設值可透過 TestConfig.expect 設定。預設為 0.2

    • timeout number (選填)#

      以毫秒為單位重試斷言的時間。預設為 TestConfig.expect 中的 timeout

返回


toHaveScreenshot(options)

新增於: v1.23 locatorAssertions.toHaveScreenshot(options)

此函式會等待直到連續兩次的 locator 螢幕截圖產生相同的結果,然後將最後的螢幕截圖與預期的結果進行比較。

用法

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> (選填)#

      指定在擷取螢幕截圖時應遮罩的 locator。遮罩的元素將會以粉紅色方框 #FF00FF(可透過 maskColor 自訂)覆蓋,完全遮蓋其邊界框。

    • maskColor string (選填)新增於:v1.35#

      指定遮罩元素的覆蓋方框顏色,以 CSS 色彩格式表示。預設顏色為粉紅色 #FF00FF

    • maxDiffPixelRatio number (選填)#

      可接受的不同像素與總像素量的比率,介於 01 之間。預設值可透過 TestConfig.expect 設定。預設為未設定。

    • maxDiffPixels number (選填)#

      可接受的不同像素量。預設值可透過 TestConfig.expect 設定。預設為未設定。

    • omitBackground boolean (選填)#

      隱藏預設的白色背景,並允許擷取具有透明度的螢幕截圖。不適用於 jpeg 圖片。預設為 false

    • scale "css" | "device" (選填)#

      當設定為 "css" 時,螢幕截圖的每個 CSS 像素將會有一個像素。對於高 DPI 裝置,這將使螢幕截圖保持較小。使用 "device" 選項將為每個裝置像素產生一個像素,因此高 DPI 裝置的螢幕截圖將會大兩倍甚至更大。

      預設為 "css"

    • stylePath string | Array<string> (選填)新增於:v1.41#

      包含在製作螢幕截圖時要套用的樣式表的檔案名稱。您可以在此處隱藏動態元素、使元素不可見或變更其屬性,以協助您建立可重複的螢幕截圖。此樣式表會穿透 Shadow DOM 並套用至內部框架。

    • threshold number (選填)#

      在比較影像中相同像素之間,可接受的 YIQ 色彩空間感知色彩差異,介於零(嚴格)和一(寬鬆)之間,預設值可透過 TestConfig.expect 設定。預設為 0.2

    • timeout number (選填)#

      以毫秒為單位重試斷言的時間。預設為 TestConfig.expect 中的 timeout

返回


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.expect 中的 timeout

    • useInnerText boolean (選填)新增於: v1.18#

      在檢索 DOM 節點文字時,是否使用 element.innerText 而不是 element.textContent

返回

詳細資訊

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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


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.expect 中的 timeout

返回


toMatchAriaSnapshot(options)

新增於: v1.50 locatorAssertions.toMatchAriaSnapshot(options)

斷言目標元素符合給定的 無障礙快照

用法

await expect(page.locator('body')).toMatchAriaSnapshot();
await expect(page.locator('body')).toMatchAriaSnapshot({ name: 'snapshot' });
await expect(page.locator('body')).toMatchAriaSnapshot({ path: '/path/to/snapshot.yml' });

參數

  • options Object (選填)
    • name string (選填)#

      要儲存在與此測試對應的快照(螢幕截圖)資料夾中的快照名稱。如果未指定,則產生循序名稱。

    • timeout number (選填)#

      以毫秒為單位重試斷言的時間。預設為 TestConfig.expect 中的 timeout

返回


屬性

not

新增於: v1.20 locatorAssertions.not

使斷言檢查相反的條件。例如,此程式碼測試 Locator 不包含文字 "error"

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

用法

expect(locator).not

類型