跳至主要内容

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 pageAssertions.toHaveScreenshot(name)

此函数将等待页面连续两次截图产生相同的结果,然后将最后一次截图与期望值进行比较。

用法

await expect(page).toHaveScreenshot('image.png');

请注意,截图断言仅适用于 Playwright 测试运行器。

参数

  • name 字符串 | 数组<字符串>#

    快照名称。

  • options 对象 (可选)

    • animations "disabled" | "allow" (可选)#

      设置为 "disabled" 时,停止 CSS 动画、CSS 过渡和 Web 动画。动画会根据其持续时间得到不同的处理

      • 有限动画会快速转发到完成状态,因此它们会触发 transitionend 事件。
      • 无限动画被取消到初始状态,然后在截图后播放。

      默认为 "disabled",禁用动画。

    • caret "hide" | "initial" (可选)#

      设置为 "hide" 时,截图将隐藏文本光标。设置为 "initial" 时,不会更改文本光标的行为。默认为 "hide"

    • clip 对象 (可选)#

      • x 数字

        剪裁区域左上角的 x 坐标

      • y 数字

        剪裁区域左上角的 y 坐标

      • width 数字

        剪裁区域的宽度

      • height 数字

        剪裁区域的高度

      指定结果图像剪裁的对象。

    • fullPage 布尔值 (可选)#

      如果为真,则拍摄整个可滚动页面的截图,而不是当前可见的视口。默认为 false

    • mask 数组<Locator> (可选)#

      指定在拍摄截图时应屏蔽的定位器。屏蔽的元素将覆盖一个粉红色框 #FF00FF(由 maskColor 自定义)完全覆盖其边界框。

    • maskColor 字符串 (可选)新增于:v1.35#

      CSS 颜色格式 指定屏蔽元素的叠加框的颜色。默认颜色为粉红色 #FF00FF

    • maxDiffPixelRatio 数字 (可选)#

      不同像素与总像素数量之间可接受的比率,介于 01 之间。默认值可通过 TestConfig.expect 配置。默认情况下未设置。

    • maxDiffPixels 数字 (可选)#

      可能不同的像素数量可接受。默认值可通过 TestConfig.expect 配置。默认情况下未设置。

    • omitBackground 布尔值 (可选)#

      隐藏默认的白色背景并允许捕获具有透明度的屏幕截图。不适用于 jpeg 图像。默认为 false

    • scale "css" | "device" (可选)#

      设置为 "css" 时,截图每个 CSS 像素将对应一个像素。对于高 DPI 设备,这将使截图保持较小尺寸。使用 "device" 选项将生成每个设备像素一个像素,因此高 DPI 设备的截图将是两倍或更大。

      默认为 "css"

    • stylePath 字符串 | 数组<字符串> (可选)新增于:v1.41#

      包含要应用于创建屏幕截图时使用的样式表的的文件名。在这里,您可以隐藏动态元素,使元素不可见或更改其属性以帮助您创建可重复的屏幕截图。此样式表穿透 Shadow DOM 并应用于内部框架。

    • threshold 数字 (可选)#

      YIQ 色彩空间 中,比较图像中相同像素之间可接受的感知颜色差异,介于零(严格)和一(宽松)之间,默认值可通过 TestConfig.expect 配置。默认为 0.2

    • timeout 数字 (可选)#

      以毫秒为单位重试断言的时间。默认为 TestConfig.expect 中的 timeout

返回值


toHaveScreenshot()

新增于:v1.23 pageAssertions.toHaveScreenshot()

此函数将等待页面连续两次截图产生相同的结果,然后将最后一次截图与期望值进行比较。

用法

await expect(page).toHaveScreenshot();

请注意,截图断言仅适用于 Playwright 测试运行器。

参数

  • options 对象 (可选)
    • animations "disabled" | "allow" (可选)#

      设置为 "disabled" 时,停止 CSS 动画、CSS 过渡和 Web 动画。动画会根据其持续时间得到不同的处理

      • 有限动画会快速转发到完成状态,因此它们会触发 transitionend 事件。
      • 无限动画被取消到初始状态,然后在截图后播放。

      默认为 "disabled",禁用动画。

    • caret "hide" | "initial" (可选)#

      设置为 "hide" 时,截图将隐藏文本光标。设置为 "initial" 时,不会更改文本光标的行为。默认为 "hide"

    • clip 对象 (可选)#

      • x 数字

        剪裁区域左上角的 x 坐标

      • y 数字

        剪裁区域左上角的 y 坐标

      • width 数字

        剪裁区域的宽度

      • height 数字

        剪裁区域的高度

      指定结果图像剪裁的对象。

    • fullPage 布尔值 (可选)#

      如果为真,则拍摄整个可滚动页面的截图,而不是当前可见的视口。默认为 false

    • mask 数组<定位器> (可选)#

      指定在截取屏幕截图时应屏蔽的定位器。被屏蔽的元素将覆盖一个粉红色框 #FF00FF(由 maskColor 自定义),该框完全覆盖其边界框。

    • maskColor 字符串 (可选)新增于:v1.35#

      CSS 颜色格式 指定屏蔽元素的叠加框的颜色。默认颜色为粉红色 #FF00FF

    • maxDiffPixelRatio 数字 (可选)#

      不同像素与总像素数量之间可接受的比率,介于 01 之间。默认值可通过 TestConfig.expect 配置。默认情况下未设置。

    • maxDiffPixels 数字 (可选)#

      可能不同的像素数量可接受。默认值可通过 TestConfig.expect 配置。默认情况下未设置。

    • omitBackground 布尔值 (可选)#

      隐藏默认的白色背景并允许捕获具有透明度的屏幕截图。不适用于 jpeg 图像。默认为 false

    • scale "css" | "device" (可选)#

      设置为 "css" 时,截图每个 CSS 像素将对应一个像素。对于高 DPI 设备,这将使截图保持较小尺寸。使用 "device" 选项将生成每个设备像素一个像素,因此高 DPI 设备的截图将是两倍或更大。

      默认为 "css"

    • stylePath 字符串 | 数组<字符串> (可选)新增于:v1.41#

      包含要应用于创建屏幕截图时使用的样式表的的文件名。在这里,您可以隐藏动态元素,使元素不可见或更改其属性以帮助您创建可重复的屏幕截图。此样式表穿透 Shadow DOM 并应用于内部框架。

    • threshold 数字 (可选)#

      YIQ 色彩空间 中,比较图像中相同像素之间可接受的感知颜色差异,介于零(严格)和一(宽松)之间,默认值可通过 TestConfig.expect 配置。默认为 0.2

    • timeout 数字 (可选)#

      以毫秒为单位重试断言的时间。默认为 TestConfig.expect 中的 timeout

返回值


toHaveTitle

新增于:v1.20 pageAssertions.toHaveTitle

确保页面具有给定的标题。

用法

await expect(page).toHaveTitle(/.*checkout/);

参数

  • titleOrRegExp 字符串 | 正则表达式新增于:v1.18#

    预期的标题或正则表达式。

  • options 对象 (可选)

    • timeout 数字 (可选)新增于:v1.18#

      以毫秒为单位重试断言的时间。默认为 TestConfig.expect 中的 timeout

返回值


toHaveURL

新增于:v1.20 pageAssertions.toHaveURL

确保页面已导航到给定的 URL。

用法

await expect(page).toHaveURL(/.*checkout/);

参数

  • urlOrRegExp 字符串 | 正则表达式新增于:v1.18#

    预期的 URL 字符串或正则表达式。

  • options 对象 (可选)

    • ignoreCase 布尔值 (可选)新增于:v1.44#

      是否执行不区分大小写的匹配。如果指定了 ignoreCase 选项,则优先于相应的正则表达式标志。

    • timeout 数字 (可选)新增于:v1.18#

      以毫秒为单位重试断言的时间。默认为 TestConfig.expect 中的 timeout

返回值


属性

not

新增于:v1.20 pageAssertions.not

使断言检查相反的条件。例如,此代码测试页面 URL 不包含 "error"

await expect(page).not.toHaveURL('error');

用法

expect(page).not

类型