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

LocatorAssertions

Класс LocatorAssertions предоставляет методы утверждений, которые можно использовать для проверки состояния Locator в тестах.

from playwright.sync_api import Page, expect

def test_status_becomes_submitted(page: Page) -> None:
# ..
page.get_by_role("button").click()
expect(page.locator(".status")).to_have_text("Submitted")

Методы

not_to_be_attached

Добавлено в: v1.33 locatorAssertions.not_to_be_attached

Обратное к методу expect(locator).to_be_attached().

Использование

expect(locator).not_to_be_attached()
expect(locator).not_to_be_attached(**kwargs)

Аргументы

  • attached bool (необязательно)#

  • timeout float (необязательно)#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_be_checked

Добавлено в: v1.20 locatorAssertions.not_to_be_checked

Обратное к методу expect(locator).to_be_checked().

Использование

expect(locator).not_to_be_checked()
expect(locator).not_to_be_checked(**kwargs)

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_be_disabled

Добавлено в: v1.20 locatorAssertions.not_to_be_disabled

Обратное к методу expect(locator).to_be_disabled().

Использование

expect(locator).not_to_be_disabled()
expect(locator).not_to_be_disabled(**kwargs)

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_be_editable

Добавлено в: v1.20 locatorAssertions.not_to_be_editable

Обратное к методу expect(locator).to_be_editable().

Использование

expect(locator).not_to_be_editable()
expect(locator).not_to_be_editable(**kwargs)

Аргументы

  • editable bool (необязательно) Добавлено в: v1.26#

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_be_empty

Добавлено в: v1.20 locatorAssertions.not_to_be_empty

Обратное к методу expect(locator).to_be_empty().

Использование

expect(locator).not_to_be_empty()
expect(locator).not_to_be_empty(**kwargs)

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_be_enabled

Добавлено в: v1.20 locatorAssertions.not_to_be_enabled

Обратное к методу expect(locator).to_be_enabled().

Использование

expect(locator).not_to_be_enabled()
expect(locator).not_to_be_enabled(**kwargs)

Аргументы

  • enabled bool (необязательно) Добавлено в: v1.26#

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_be_focused

Добавлено в: v1.20 locatorAssertions.not_to_be_focused

Обратное к методу expect(locator).to_be_focused().

Использование

expect(locator).not_to_be_focused()
expect(locator).not_to_be_focused(**kwargs)

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_be_hidden

Добавлено в: v1.20 locatorAssertions.not_to_be_hidden

Обратное к методу expect(locator).to_be_hidden().

Использование

expect(locator).not_to_be_hidden()
expect(locator).not_to_be_hidden(**kwargs)

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_be_in_viewport

Добавлено в: v1.31 locatorAssertions.not_to_be_in_viewport

Обратное к методу expect(locator).to_be_in_viewport().

Использование

expect(locator).not_to_be_in_viewport()
expect(locator).not_to_be_in_viewport(**kwargs)

Аргументы

  • ratio float (необязательно)#

  • timeout float (необязательно)#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_be_visible

Добавлено в: v1.20 locatorAssertions.not_to_be_visible

Обратное к методу expect(locator).to_be_visible().

Использование

expect(locator).not_to_be_visible()
expect(locator).not_to_be_visible(**kwargs)

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

  • visible bool (необязательно) Добавлено в: v1.26#

Возвращает


not_to_contain_text

Добавлено в: v1.20 locatorAssertions.not_to_contain_text

Обратное к методу expect(locator).to_contain_text().

Использование

expect(locator).not_to_contain_text(expected)
expect(locator).not_to_contain_text(expected, **kwargs)

Аргументы

  • expected str | Pattern | List[str] | List[Pattern] | List[str | Pattern] Добавлено в: v1.18#

    Ожидаемая подстрока или регулярное выражение, либо список таких значений.

  • ignore_case bool (необязательно) Добавлено в: v1.23#

    Выполнять ли проверку без учёта регистра. Параметр ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если указан.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

  • use_inner_text bool (необязательно) Добавлено в: v1.18#

    Использовать ли element.innerText вместо element.textContent при получении текста DOM-узла.

Возвращает


not_to_have_accessible_description

Добавлено в: v1.44 locatorAssertions.not_to_have_accessible_description

Обратное к методу expect(locator).to_have_accessible_description().

Использование

expect(locator).not_to_have_accessible_description(name)
expect(locator).not_to_have_accessible_description(name, **kwargs)

Аргументы

  • description str | Pattern#

    Ожидаемое доступное описание.

  • ignore_case bool (необязательно)#

    Выполнять ли проверку без учёта регистра. Параметр ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если указан.

  • timeout float (необязательно)#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_have_accessible_error_message

Добавлено в: v1.50 locatorAssertions.not_to_have_accessible_error_message

Обратное к методу expect(locator).to_have_accessible_error_message().

Использование

expect(locator).not_to_have_accessible_error_message(error_message)
expect(locator).not_to_have_accessible_error_message(error_message, **kwargs)

Аргументы

  • error_message str | Pattern#

    Ожидаемое доступное сообщение об ошибке.

  • ignore_case bool (необязательно)#

    Выполнять ли проверку без учёта регистра. Параметр ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если указан.

  • timeout float (необязательно)#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_have_accessible_name

Добавлено в: v1.44 locatorAssertions.not_to_have_accessible_name

Обратное к методу expect(locator).to_have_accessible_name().

Использование

expect(locator).not_to_have_accessible_name(name)
expect(locator).not_to_have_accessible_name(name, **kwargs)

Аргументы

  • name str | Pattern#

    Ожидаемое доступное имя.

  • ignore_case bool (необязательно)#

    Выполнять ли проверку без учёта регистра. Параметр ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если указан.

  • timeout float (необязательно)#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_have_attribute

Добавлено в: v1.20 locatorAssertions.not_to_have_attribute

Обратное к методу expect(locator).to_have_attribute().

Использование

expect(locator).not_to_have_attribute(name, value)
expect(locator).not_to_have_attribute(name, value, **kwargs)

Аргументы

  • name str Добавлено в: v1.18#

    Имя атрибута.

  • value str | Pattern Добавлено в: v1.18#

    Ожидаемое значение атрибута.

  • ignore_case bool (необязательно) Добавлено в: v1.40#

    Выполнять ли проверку без учёта регистра. Параметр ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если указан.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_have_class

Добавлено в: v1.20 locatorAssertions.not_to_have_class

Обратное к методу expect(locator).to_have_class().

Использование

expect(locator).not_to_have_class(expected)
expect(locator).not_to_have_class(expected, **kwargs)

Аргументы

  • expected str | Pattern | List[str] | List[Pattern] | List[str | Pattern] Добавлено в: v1.18#

    Ожидаемый класс или регулярное выражение, либо список таких значений.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_have_count

Добавлено в: v1.20 locatorAssertions.not_to_have_count

Обратное к методу expect(locator).to_have_count().

Использование

expect(locator).not_to_have_count(count)
expect(locator).not_to_have_count(count, **kwargs)

Аргументы

  • count int Добавлено в: v1.18#

    Ожидаемое количество.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_have_css

Добавлено в: v1.20 locatorAssertions.not_to_have_css

Обратное к методу expect(locator).to_have_css().

Использование

expect(locator).not_to_have_css(name, value)
expect(locator).not_to_have_css(name, value, **kwargs)

Аргументы

  • name str Добавлено в: v1.18#

    Имя CSS-свойства.

  • value str | Pattern Добавлено в: v1.18#

    Значение CSS-свойства.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_have_id

Добавлено в: v1.20 locatorAssertions.not_to_have_id

Обратное к методу expect(locator).to_have_id().

Использование

expect(locator).not_to_have_id(id)
expect(locator).not_to_have_id(id, **kwargs)

Аргументы

  • id str | Pattern Добавлено в: v1.18#

    Идентификатор элемента.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время, в течение которого будет повторяться попытка проверки, в миллисекундах. По умолчанию — 5000.

Возвращает


not_to_have_js_property

Добавлено в: v1.20 locatorAssertions.not_to_have_js_property

Противоположность expect(locator).to_have_js_property().

Использование

expect(locator).not_to_have_js_property(name, value)
expect(locator).not_to_have_js_property(name, value, **kwargs)

Аргументы

  • name str Добавлено в: v1.18#

    Имя свойства.

  • value Any Добавлено в: v1.18#

    Значение свойства.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


not_to_have_role

Добавлено в: v1.44 locatorAssertions.not_to_have_role

Противоположность expect(locator).to_have_role().

Использование

expect(locator).not_to_have_role(role)
expect(locator).not_to_have_role(role, **kwargs)

Аргументы

  • 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.

  • timeout float (необязательно)#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


not_to_have_text

Добавлено в: v1.20 locatorAssertions.not_to_have_text

Противоположность expect(locator).to_have_text().

Использование

expect(locator).not_to_have_text(expected)
expect(locator).not_to_have_text(expected, **kwargs)

Аргументы

  • expected str | Pattern | List[str] | List[Pattern] | List[str | Pattern] Добавлено в: v1.18#

    Ожидаемая строка или регулярное выражение или список из них.

  • ignore_case bool (необязательно) Добавлено в: v1.23#

    Выполнять ли сопоставление без учета регистра. Опция ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если он указан.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

  • use_inner_text bool (необязательно) Добавлено в: v1.18#

    Использовать ли element.innerText вместо element.textContent при получении текста DOM-узла.

Возвращает


not_to_have_value

Добавлено в: v1.20 locatorAssertions.not_to_have_value

Противоположность expect(locator).to_have_value().

Использование

expect(locator).not_to_have_value(value)
expect(locator).not_to_have_value(value, **kwargs)

Аргументы

  • value str | Pattern Добавлено в: v1.18#

    Ожидаемое значение.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


not_to_have_values

Добавлено в: v1.23 locatorAssertions.not_to_have_values

Противоположность expect(locator).to_have_values().

Использование

expect(locator).not_to_have_values(values)
expect(locator).not_to_have_values(values, **kwargs)

Аргументы

  • values List[str] | List[Pattern] | List[str | Pattern]#

    Ожидаемые в данный момент выбранные опции.

  • timeout float (необязательно)#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


not_to_match_aria_snapshot

Добавлено в: v1.49 locatorAssertions.not_to_match_aria_snapshot

Противоположность expect(locator).to_match_aria_snapshot().

Использование

expect(locator).not_to_match_aria_snapshot(expected)
expect(locator).not_to_match_aria_snapshot(expected, **kwargs)

Аргументы

  • expected str#

  • timeout float (необязательно)#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_be_attached

Добавлено в: v1.33 locatorAssertions.to_be_attached

Убеждается, что Locator указывает на элемент, который подключен к Document или ShadowRoot.

Использование

expect(page.get_by_text("Hidden text")).to_be_attached()

Аргументы

  • attached bool (необязательно)#

  • timeout float (необязательно)#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_be_checked

Добавлено в: v1.20 locatorAssertions.to_be_checked

Убеждается, что Locator указывает на отмеченный ввод.

Использование

from playwright.sync_api import expect

locator = page.get_by_label("Subscribe to newsletter")
expect(locator).to_be_checked()

Аргументы

  • checked bool (необязательно) Добавлено в: v1.18#

    Предоставляет состояние для утверждения. По умолчанию утверждает, что ввод отмечен. Эта опция не может быть использована, когда indeterminate установлено в true.

  • indeterminate bool (необязательно) Добавлено в: v1.50#

    Утверждает, что элемент находится в неопределенном (смешанном) состоянии. Поддерживается только для флажков и радиокнопок. Эта опция не может быть true, когда checked предоставлено.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_be_disabled

Добавлено в: v1.20 locatorAssertions.to_be_disabled

Убеждается, что Locator указывает на отключенный элемент. Элемент отключен, если у него есть атрибут "disabled" или он отключен через 'aria-disabled'. Обратите внимание, что только элементы управления, такие как HTML button, input, select, textarea, option, optgroup могут быть отключены путем установки атрибута "disabled". Атрибут "disabled" на других элементах игнорируется браузером.

Использование

from playwright.sync_api import expect

locator = page.locator("button.submit")
expect(locator).to_be_disabled()

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_be_editable

Добавлено в: v1.20 locatorAssertions.to_be_editable

Убеждается, что Locator указывает на редактируемый элемент.

Использование

from playwright.sync_api import expect

locator = page.get_by_role("textbox")
expect(locator).to_be_editable()

Аргументы

  • editable bool (необязательно) Добавлено в: v1.26#

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_be_empty

Добавлено в: v1.20 locatorAssertions.to_be_empty

Убеждается, что Locator указывает на пустой редактируемый элемент или на DOM-узел, который не содержит текста.

Использование

from playwright.sync_api import expect

locator = page.locator("div.warning")
expect(locator).to_be_empty()

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_be_enabled

Добавлено в: v1.20 locatorAssertions.to_be_enabled

Убеждается, что Locator указывает на включенный элемент.

Использование

from playwright.sync_api import expect

locator = page.locator("button.submit")
expect(locator).to_be_enabled()

Аргументы

  • enabled bool (необязательно) Добавлено в: v1.26#

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_be_focused

Добавлено в: v1.20 locatorAssertions.to_be_focused

Убеждается, что Locator указывает на сфокусированный DOM-узел.

Использование

from playwright.sync_api import expect

locator = page.get_by_role("textbox")
expect(locator).to_be_focused()

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_be_hidden

Добавлено в: v1.20 locatorAssertions.to_be_hidden

Убеждается, что Locator либо не разрешается ни к одному DOM-узлу, либо разрешается к невидимому.

Использование

from playwright.sync_api import expect

locator = page.locator('.my-element')
expect(locator).to_be_hidden()

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_be_in_viewport

Добавлено в: v1.31 locatorAssertions.to_be_in_viewport

Убеждается, что Locator указывает на элемент, который пересекает область просмотра, согласно intersection observer API.

Использование

from playwright.sync_api import expect

locator = page.get_by_role("button")
# Убедитесь, что хотя бы часть элемента пересекает область просмотра.
expect(locator).to_be_in_viewport()
# Убедитесь, что элемент полностью вне области просмотра.
expect(locator).not_to_be_in_viewport()
# Убедитесь, что хотя бы половина элемента пересекает область просмотра.
expect(locator).to_be_in_viewport(ratio=0.5)

Аргументы

  • ratio float (необязательно)#

    Минимальное соотношение элемента, пересекающего область просмотра. Если равно 0, то элемент должен пересекать область просмотра при любом положительном соотношении. По умолчанию 0.

  • timeout float (необязательно)#

    Время для повторной проверки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_be_visible

Добавлено в: v1.20 locatorAssertions.to_be_visible

Убеждается, что Locator указывает на прикрепленный и видимый DOM-узел.

Чтобы проверить, что хотя бы один элемент из списка видим, используйте locator.first.

Использование

# Конкретный элемент видим.
expect(page.get_by_text("Welcome")).to_be_visible()

# По крайней мере один элемент в списке видим.
expect(page.get_by_test_id("todo-item").first).to_be_visible()

# По крайней мере один из двух элементов видим, возможно оба.
expect(
page.get_by_role("button", name="Sign in")
.or_(page.get_by_role("button", name="Sign up"))
.first
).to_be_visible()

Аргументы

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной проверки утверждения в миллисекундах. По умолчанию 5000.

  • visible bool (необязательно) Добавлено в: v1.26#

Возвращает


to_contain_text

Добавлено в: v1.20 locatorAssertions.to_contain_text

Убеждается, что Locator указывает на элемент, содержащий заданный текст. Все вложенные элементы будут учитываться при вычислении текстового содержимого элемента. Вы также можете использовать регулярные выражения для значения.

Использование

import re
from playwright.sync_api import expect

locator = page.locator('.title')
expect(locator).to_contain_text("substring")
expect(locator).to_contain_text(re.compile(r"\d messages"))

Если вы передаете массив в качестве ожидаемого значения, ожидания следующие:

  1. Локатор разрешается в список элементов.
  2. Элементы из подмножества этого списка содержат текст из ожидаемого массива соответственно.
  3. Подмножество совпадающих элементов имеет тот же порядок, что и ожидаемый массив.
  4. Каждое текстовое значение из ожидаемого массива совпадает с каким-то элементом из списка.

Например, рассмотрим следующий список:

<ul>
<li>Item Text 1</li>
<li>Item Text 2</li>
<li>Item Text 3</li>
</ul>

Давайте посмотрим, как мы можем использовать утверждение:

from playwright.sync_api import expect

# ✓ Содержит правильные элементы в правильном порядке
expect(page.locator("ul > li")).to_contain_text(["Text 1", "Text 3", "Text 4"])

# ✖ Неправильный порядок
expect(page.locator("ul > li")).to_contain_text(["Text 3", "Text 2"])

# ✖ Ни один элемент не содержит этот текст
expect(page.locator("ul > li")).to_contain_text(["Some 33"])

# ✖ Локатор указывает на внешний элемент списка, а не на элементы списка
expect(page.locator("ul")).to_contain_text(["Text 3"])

Аргументы

  • expected str | Pattern | List[str] | List[Pattern] | List[str | Pattern] Добавлено в: v1.18#

    Ожидаемая подстрока или RegExp или список из них.

  • ignore_case bool (необязательно) Добавлено в: v1.23#

    Выполнять ли сопоставление без учета регистра. Опция ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если он указан.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной проверки утверждения в миллисекундах. По умолчанию 5000.

  • use_inner_text bool (необязательно) Добавлено в: v1.18#

    Использовать ли element.innerText вместо element.textContent при получении текста DOM-узла.

Возвращает

Details

Когда параметр expected является строкой, Playwright нормализует пробелы и разрывы строк как в фактическом тексте, так и в ожидаемой строке перед сопоставлением. Когда используется регулярное выражение, фактический текст сопоставляется как есть.


to_have_accessible_description

Добавлено в: v1.44 locatorAssertions.to_have_accessible_description

Убеждается, что Locator указывает на элемент с заданным доступным описанием.

Использование

locator = page.get_by_test_id("save-button")
expect(locator).to_have_accessible_description("Save results to disk")

Аргументы

  • description str | Pattern#

    Ожидаемое доступное описание.

  • ignore_case bool (необязательно)#

    Выполнять ли сопоставление без учета регистра. Опция ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если он указан.

  • timeout float (необязательно)#

    Время для повторной проверки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_accessible_error_message

Добавлено в: v1.50 locatorAssertions.to_have_accessible_error_message

Убеждается, что Locator указывает на элемент с заданным aria errormessage.

Использование

locator = page.get_by_test_id("username-input")
expect(locator).to_have_accessible_error_message("Username is required.")

Аргументы

  • error_message str | Pattern#

    Ожидаемое доступное сообщение об ошибке.

  • ignore_case bool (необязательно)#

    Выполнять ли сопоставление без учета регистра. Опция ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если он указан.

  • timeout float (необязательно)#

    Время для повторной проверки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_accessible_name

Добавлено в: v1.44 locatorAssertions.to_have_accessible_name

Убеждается, что Locator указывает на элемент с заданным доступным именем.

Использование

locator = page.get_by_test_id("save-button")
expect(locator).to_have_accessible_name("Save to disk")

Аргументы

  • name str | Pattern#

    Ожидаемое доступное имя.

  • ignore_case bool (необязательно)#

    Выполнять ли сопоставление без учета регистра. Опция ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если он указан.

  • timeout float (необязательно)#

    Время для повторной проверки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_attribute

Добавлено в: v1.20 locatorAssertions.to_have_attribute

Убеждается, что Locator указывает на элемент с заданным атрибутом.

Использование

from playwright.sync_api import expect

locator = page.locator("input")
expect(locator).to_have_attribute("type", "text")

Аргументы

  • name str Добавлено в: v1.18#

    Имя атрибута.

  • value str | Pattern Добавлено в: v1.18#

    Ожидаемое значение атрибута.

  • ignore_case bool (необязательно) Добавлено в: v1.40#

    Выполнять ли сопоставление без учета регистра. Опция ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если он указан.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной проверки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_class

Добавлено в: v1.20 locatorAssertions.to_have_class

Убеждается, что Locator указывает на элемент с заданными CSS-классами. Когда предоставляется строка, она должна полностью соответствовать атрибуту class элемента. Чтобы сопоставить отдельные классы или выполнить частичные совпадения, используйте регулярное выражение:

Использование

<div class='middle selected row' id='component'></div>
from playwright.sync_api import expect

locator = page.locator("#component")
expect(locator).to_have_class(re.compile(r"(^|\\s)selected(\\s|$)"))
expect(locator).to_have_class("middle selected row")

Когда передается массив, метод утверждает, что список найденных элементов соответствует соответствующему списку ожидаемых значений классов. Атрибут class каждого элемента сопоставляется с соответствующей строкой или регулярным выражением в массиве:

from playwright.sync_api import expect

locator = page.locator("list > .component")
expect(locator).to_have_class(["component", "component selected", "component"])

Аргументы

  • expected str | Pattern | List[str] | List[Pattern] | List[str | Pattern] Добавлено в: v1.18#

    Ожидаемый класс или RegExp или список из них.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной проверки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_count

Добавлено в: v1.20 locatorAssertions.to_have_count

Убеждается, что Locator разрешается в точное количество DOM-узлов.

Использование

from playwright.sync_api import expect

locator = page.locator("list > .component")
expect(locator).to_have_count(3)

Аргументы

  • count int Добавлено в: v1.18#

    Ожидаемое количество.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_css

Добавлено в: v1.20 locatorAssertions.to_have_css

Убеждается, что Locator разрешается в элемент с заданным вычисленным стилем CSS.

Использование

from playwright.sync_api import expect

locator = page.get_by_role("button")
expect(locator).to_have_css("display", "flex")

Аргументы

  • name str Добавлено в: v1.18#

    Имя CSS-свойства.

  • value str | Pattern Добавлено в: v1.18#

    Значение CSS-свойства.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_id

Добавлено в: v1.20 locatorAssertions.to_have_id

Убеждается, что Locator указывает на элемент с заданным ID DOM-узла.

Использование

from playwright.sync_api import expect

locator = page.get_by_role("textbox")
expect(locator).to_have_id("lastname")

Аргументы

  • id str | Pattern Добавлено в: v1.18#

    ID элемента.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_js_property

Добавлено в: v1.20 locatorAssertions.to_have_js_property

Убеждается, что Locator указывает на элемент с заданным JavaScript-свойством. Обратите внимание, что это свойство может быть как примитивного типа, так и простым сериализуемым JavaScript-объектом.

Использование

from playwright.sync_api import expect

locator = page.locator(".component")
expect(locator).to_have_js_property("loaded", True)

Аргументы

  • name str Добавлено в: v1.18#

    Имя свойства.

  • value Any Добавлено в: v1.18#

    Значение свойства.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_role

Добавлено в: v1.44 locatorAssertions.to_have_role

Убеждается, что Locator указывает на элемент с заданной ARIA ролью.

Обратите внимание, что роль сопоставляется как строка, игнорируя иерархию ARIA ролей. Например, утверждение о роли суперкласса "checkbox" на элементе с ролью подкласса "switch" завершится неудачей.

Использование

locator = page.get_by_test_id("save-button")
expect(locator).to_have_role("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 роль.

  • timeout float (необязательно)#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_text

Добавлено в: v1.20 locatorAssertions.to_have_text

Убеждается, что Locator указывает на элемент с заданным текстом. Все вложенные элементы будут учтены при вычислении текстового содержимого элемента. Вы также можете использовать регулярные выражения для значения.

Использование

import re
from playwright.sync_api import expect

locator = page.locator(".title")
expect(locator).to_have_text(re.compile(r"Welcome, Test User"))
expect(locator).to_have_text(re.compile(r"Welcome, .*"))

Если вы передаете массив в качестве ожидаемого значения, ожидания следующие:

  1. Локатор разрешается в список элементов.
  2. Количество элементов равно количеству ожидаемых значений в массиве.
  3. Элементы из списка имеют текст, соответствующий ожидаемым значениям массива, один за другим, в порядке.

Например, рассмотрим следующий список:

<ul>
<li>Text 1</li>
<li>Text 2</li>
<li>Text 3</li>
</ul>

Давайте посмотрим, как мы можем использовать утверждение:

from playwright.sync_api import expect

# ✓ Имеет правильные элементы в правильном порядке
expect(page.locator("ul > li")).to_have_text(["Text 1", "Text 2", "Text 3"])

# ✖ Неправильный порядок
expect(page.locator("ul > li")).to_have_text(["Text 3", "Text 2", "Text 1"])

# ✖ Последний элемент не совпадает
expect(page.locator("ul > li")).to_have_text(["Text 1", "Text 2", "Text"])

# ✖ Локатор указывает на внешний элемент списка, а не на элементы списка
expect(page.locator("ul")).to_have_text(["Text 1", "Text 2", "Text 3"])

Аргументы

  • expected str | Pattern | List[str] | List[Pattern] | List[str | Pattern] Добавлено в: v1.18#

    Ожидаемая строка или регулярное выражение или список из них.

  • ignore_case bool (необязательно) Добавлено в: v1.23#

    Выполнять ли сопоставление без учета регистра. Опция ignore_case имеет приоритет над соответствующим флагом регулярного выражения, если он указан.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

  • use_inner_text bool (необязательно) Добавлено в: v1.18#

    Использовать ли element.innerText вместо element.textContent при получении текста DOM-узла.

Возвращает

Детали

Когда параметр expected является строкой, Playwright нормализует пробелы и разрывы строк как в фактическом тексте, так и в ожидаемой строке перед сопоставлением. Когда используется регулярное выражение, фактический текст сопоставляется как есть.


to_have_value

Добавлено в: v1.20 locatorAssertions.to_have_value

Убеждается, что Locator указывает на элемент с заданным значением ввода. Вы также можете использовать регулярные выражения для значения.

Использование

import re
from playwright.sync_api import expect

locator = page.locator("input[type=number]")
expect(locator).to_have_value(re.compile(r"[0-9]"))

Аргументы

  • value str | Pattern Добавлено в: v1.18#

    Ожидаемое значение.

  • timeout float (необязательно) Добавлено в: v1.18#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_have_values

Добавлено в: v1.23 locatorAssertions.to_have_values

Убеждается, что Locator указывает на мульти-выбор/комбобокс (т.е. select с атрибутом multiple) и указанные значения выбраны.

Использование

Например, учитывая следующий элемент:

<select id="favorite-colors" multiple>
<option value="R">Red</option>
<option value="G">Green</option>
<option value="B">Blue</option>
</select>
import re
from playwright.sync_api import expect

locator = page.locator("id=favorite-colors")
locator.select_option(["R", "G"])
expect(locator).to_have_values([re.compile(r"R"), re.compile(r"G")])

Аргументы

  • values List[str] | List[Pattern] | List[str | Pattern]#

    Ожидаемые в данный момент выбранные опции.

  • timeout float (необязательно)#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает


to_match_aria_snapshot

Добавлено в: v1.49 locatorAssertions.to_match_aria_snapshot

Утверждает, что целевой элемент соответствует заданному снимку доступности.

Использование

page.goto("https://demo.playwright.dev/todomvc/")
expect(page.locator('body')).to_match_aria_snapshot('''
- heading "todos"
- textbox "What needs to be done?"
''')

Аргументы

  • expected str#

  • timeout float (необязательно)#

    Время для повторной попытки утверждения в миллисекундах. По умолчанию 5000.

Возвращает