--- id: test-assertions title: "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: ```python expect(page.get_by_text("Name"), "should be logged in").to_be_visible() ``` The error would look like this: ```bash 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 ```python title="conftest.py" from playwright.sync_api import expect expect.set_options(timeout=10_000) ``` ### Per assertion timeout ```python title="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) ```