playwright/docs/src/test-assertions-csharp-java-python.md

2.7 KiB

id title
test-assertions Assertions

List of assertions

Assertion Description
[method: LocatorAssertions.toBeChecked] Checkbox is checked
[method: LocatorAssertions.toBeDisabled] Element is disabled
[method: LocatorAssertions.toBeEditable] Element is editable
[method: LocatorAssertions.toBeEmpty] Container is empty
[method: LocatorAssertions.toBeEnabled] Element is enabled
[method: LocatorAssertions.toBeFocused] Element is focused
[method: LocatorAssertions.toBeHidden] Element is not visible
[method: LocatorAssertions.toBeVisible] Element is visible
[method: LocatorAssertions.toContainText] Element contains text
[method: LocatorAssertions.toHaveAttribute] Element has a DOM attribute
[method: LocatorAssertions.toHaveClass] Element has a class property
[method: LocatorAssertions.toHaveCount] List has exact number of children
[method: LocatorAssertions.toHaveCSS] Element has CSS property
[method: LocatorAssertions.toHaveId] Element has an ID
[method: LocatorAssertions.toHaveJSProperty] Element has a JavaScript property
[method: LocatorAssertions.toHaveText] Element matches text
[method: LocatorAssertions.toHaveValue] Input has a value
[method: LocatorAssertions.toHaveValues] Select has options selected
[method: PageAssertions.toHaveTitle] Page has a title
[method: PageAssertions.toHaveURL] Page has a URL
[method: APIResponseAssertions.toBeOK] Response has an OK status

Custom Expect Message

  • langs: python

You can specify a custom error message as a second argument to the expect function, for example:

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

The error would look like this:

    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

Setting a custom timeout

  • langs: python

You can specify a custom timeout for assertions either globally or per assertion. The default timeout is 5 seconds.

Global timeout

from playwright.sync_api import expect

expect.set_options(timeout=10_000)

Per assertion timeout

from playwright.sync_api import expect

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