跳至主要内容

断言

断言列表

断言描述
expect(locator).to_be_attached()元素已附加
expect(locator).to_be_checked()复选框已选中
expect(locator).to_be_disabled()元素已禁用
expect(locator).to_be_editable()元素可编辑
expect(locator).to_be_empty()容器为空
expect(locator).to_be_enabled()元素已启用
expect(locator).to_be_focused()元素已获得焦点
expect(locator).to_be_hidden()元素不可见
expect(locator).to_be_in_viewport()元素与视窗相交
expect(locator).to_be_visible()元素可见
expect(locator).to_contain_text()元素包含文本
expect(locator).to_have_accessible_description()元素具有匹配的 可访问描述
expect(locator).to_have_accessible_name()元素具有匹配的 可访问名称
expect(locator).to_have_attribute()元素具有 DOM 属性
expect(locator).to_have_class()元素具有类属性
expect(locator).to_have_count()列表具有确切数量的子元素
expect(locator).to_have_css()元素具有 CSS 属性
expect(locator).to_have_id()元素具有 ID
expect(locator).to_have_js_property()元素具有 JavaScript 属性
expect(locator).to_have_role()元素具有特定的 ARIA 角色
expect(locator).to_have_text()元素匹配文本
expect(locator).to_have_value()输入具有值
expect(locator).to_have_values()选择具有选定的选项
expect(page).to_have_title()页面具有标题
expect(page).to_have_url()页面具有 URL
expect(response).to_be_ok()响应具有 OK 状态

自定义期望消息

您可以将自定义期望消息作为 expect 函数的第二个参数指定,例如

expect(page.get_by_text("Name"), "should be logged in").to_be_visible()

当期望失败时,错误将如下所示

    def test_foobar(page: Page) -> None:
> expect(page.get_by_text("Name"), "should be logged in").to_be_visible()
E AssertionError: should be logged in
E Actual value: None
E Call log:
E LocatorAssertions.to_be_visible with timeout 5000ms
E waiting for get_by_text("Name")
E waiting for get_by_text("Name")

tests/test_foobar.py:22: AssertionError

设置自定义超时

您可以全局或在每个断言中指定断言的自定义超时。默认超时为 5 秒。

全局超时

conftest.py
from playwright.sync_api import expect

expect.set_options(timeout=10_000)

每个断言超时

test_foobar.py
from playwright.sync_api import expect

def test_foobar(page: Page) -> None:
expect(page.get_by_text("Name")).to_be_visible(timeout=10_000)