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此函數將等待直到兩個連續的頁面螢幕截圖產生相同的結果,然後將最後的螢幕截圖與預期結果進行比較。
用法
await expect(page).toHaveScreenshot('image.png');
請注意,螢幕截圖斷言僅適用於 Playwright 測試執行器。
參數
-
快照名稱。
-
options
Object (可選)-
animations
"disabled" | "allow" (可選)#當設定為
"disabled"
時,停止 CSS 動畫、CSS 過渡和 Web Animations。動畫會根據其持續時間而有不同的處理方式- 有限動畫會快速轉到完成,因此它們會觸發
transitionend
事件。 - 無限動畫會取消到初始狀態,然後在螢幕截圖後重新播放。
預設為
"disabled"
,禁用動畫。 - 有限動畫會快速轉到完成,因此它們會觸發
-
caret
"hide" | "initial" (可選)#當設定為
"hide"
時,螢幕截圖將隱藏文字游標。當設定為"initial"
時,文字游標行為將不會更改。預設為"hide"
。 -
一個物件,用於指定結果圖像的剪裁。
-
當為 true 時,會截取整個可捲動頁面的螢幕截圖,而不是當前可見的視窗。預設為
false
。 -
指定在截取螢幕截圖時應遮罩的 locator。遮罩的元素將被粉紅色框
#FF00FF
(可通過 maskColor 自訂)覆蓋,完全遮蓋其邊界框。 -
maskColor
string (可選)新增於版本: v1.35#指定遮罩元素的覆蓋框顏色,採用 CSS 顏色格式。預設顏色為粉紅色
#FF00FF
。 -
maxDiffPixelRatio
number (可選)#像素差異與像素總量的可接受比率,介於
0
和1
之間。預設值可通過TestConfig.expect
配置。預設為未設定。 -
可接受的不同像素數量。預設值可通過
TestConfig.expect
配置。預設為未設定。 -
隱藏預設的白色背景,並允許捕獲具有透明度的螢幕截圖。不適用於
jpeg
圖像。預設為false
。 -
scale
"css" | "device" (可選)#當設定為
"css"
時,螢幕截圖的每個 CSS 像素將有一個像素。對於高 DPI 設備,這將保持螢幕截圖較小。使用"device"
選項將為每個設備像素產生一個像素,因此高 DPI 設備的螢幕截圖將大兩倍甚至更大。預設為
"css"
。 -
stylePath
string | Array<string> (可選)新增於版本: v1.41#包含樣式表的檔案名稱,用於在製作螢幕截圖時應用。您可以在此處隱藏動態元素、使元素不可見或更改其屬性,以幫助您建立可重複的螢幕截圖。此樣式表會穿透 Shadow DOM 並應用於內部框架。
-
在比較圖像中相同像素之間,YIQ 色彩空間中可接受的感知色彩差異,介於零(嚴格)和一(寬鬆)之間,預設值可通過
TestConfig.expect
配置。預設為0.2
。 -
以毫秒為單位重試斷言的時間。預設為
TestConfig.expect
中的timeout
。
-
回傳
toHaveScreenshot(options)
新增於版本: v1.23此函數將等待直到兩個連續的頁面螢幕截圖產生相同的結果,然後將最後的螢幕截圖與預期結果進行比較。
用法
await expect(page).toHaveScreenshot();
請注意,螢幕截圖斷言僅適用於 Playwright 測試執行器。
參數
options
Object (可選)-
animations
"disabled" | "allow" (可選)#當設定為
"disabled"
時,停止 CSS 動畫、CSS 過渡和 Web Animations。動畫會根據其持續時間而有不同的處理方式- 有限動畫會快速轉到完成,因此它們會觸發
transitionend
事件。 - 無限動畫會取消到初始狀態,然後在螢幕截圖後重新播放。
預設為
"disabled"
,禁用動畫。 - 有限動畫會快速轉到完成,因此它們會觸發
-
caret
"hide" | "initial" (可選)#當設定為
"hide"
時,螢幕截圖將隱藏文字游標。當設定為"initial"
時,文字游標行為將不會更改。預設為"hide"
。 -
一個物件,用於指定結果圖像的剪裁。
-
當為 true 時,會截取整個可捲動頁面的螢幕截圖,而不是當前可見的視窗。預設為
false
。 -
指定在截取螢幕截圖時應遮罩的 locator。遮罩的元素將被粉紅色框
#FF00FF
(可通過 maskColor 自訂)覆蓋,完全遮蓋其邊界框。 -
maskColor
string (可選)新增於版本: v1.35#指定遮罩元素的覆蓋框顏色,採用 CSS 顏色格式。預設顏色為粉紅色
#FF00FF
。 -
maxDiffPixelRatio
number (可選)#像素差異與像素總量的可接受比率,介於
0
和1
之間。預設值可通過TestConfig.expect
配置。預設為未設定。 -
可接受的不同像素數量。預設值可通過
TestConfig.expect
配置。預設為未設定。 -
隱藏預設的白色背景,並允許捕獲具有透明度的螢幕截圖。不適用於
jpeg
圖像。預設為false
。 -
scale
"css" | "device" (可選)#當設定為
"css"
時,螢幕截圖的每個 CSS 像素將有一個像素。對於高 DPI 設備,這將保持螢幕截圖較小。使用"device"
選項將為每個設備像素產生一個像素,因此高 DPI 設備的螢幕截圖將大兩倍甚至更大。預設為
"css"
。 -
stylePath
string | Array<string> (可選)新增於版本: v1.41#包含樣式表的檔案名稱,用於在製作螢幕截圖時應用。您可以在此處隱藏動態元素、使元素不可見或更改其屬性,以幫助您建立可重複的螢幕截圖。此樣式表會穿透 Shadow DOM 並應用於內部框架。
-
在比較圖像中相同像素之間,YIQ 色彩空間中可接受的感知色彩差異,介於零(嚴格)和一(寬鬆)之間,預設值可通過
TestConfig.expect
配置。預設為0.2
。 -
以毫秒為單位重試斷言的時間。預設為
TestConfig.expect
中的timeout
。
-
回傳
toHaveTitle
新增於版本: v1.20確保頁面具有指定的標題。
用法
await expect(page).toHaveTitle(/.*checkout/);
參數
回傳
toHaveURL
新增於版本: v1.20確保頁面已導航到指定的 URL。
用法
await expect(page).toHaveURL(/.*checkout/);
參數
-
urlOrRegExp
string | RegExp新增於版本: v1.18#預期的 URL 字串或 RegExp。
-
options
Object (可選)-
ignoreCase
boolean (可選)新增於版本: v1.44#是否執行不區分大小寫的匹配。ignoreCase 選項優先於指定的對應正則表達式標誌。
-
timeout
number (可選)新增於版本: v1.18#以毫秒為單位重試斷言的時間。預設為
TestConfig.expect
中的timeout
。
-
回傳
屬性
not
新增於版本: v1.20使斷言檢查相反的條件。例如,此程式碼測試頁面 URL 不包含 "error"
await expect(page).not.toHaveURL('error');
用法
expect(page).not
類型