Перейти к основному содержимому

Проверки

Список утверждений

УтверждениеОписание
expect(locator).to_be_attached()Элемент прикреплён к DOM
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()Элемент пересекается с viewport
expect(locator).to_be_visible()Элемент видим
expect(locator).to_contain_class()У элемента есть указанные CSS-классы
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()У элемента есть свойство 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()У select выбраны значения (options)
expect(locator).to_match_aria_snapshot()Элемент соответствует переданному ARIA-снимку
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)