id | title |
---|---|
test-assertions |
Assertions |
Assertion | Description |
---|---|
[method: LocatorAssertions.toBeAttached ] |
Element is attached |
[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.toBeInViewport ] |
Element intersects viewport |
[method: LocatorAssertions.toBeVisible ] |
Element is visible |
[method: LocatorAssertions.toContainText ] |
Element contains text |
[method: LocatorAssertions.toHaveAccessibleDescription ] |
Element has a matching accessible description |
[method: LocatorAssertions.toHaveAccessibleName ] |
Element has a matching accessible name |
[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.toHaveRole ] |
Element has a specific ARIA role |
[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 |
- langs: python
You can specify a custom expect message as a second argument to the expect
function, for example:
expect(page.get_by_text("Name"), "should be logged in").to_be_visible()
When expect fails, 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
- langs: python, csharp
You can specify a custom timeout for assertions either globally or per assertion. The default timeout is 5 seconds.
- langs: python
from playwright.sync_api import expect
expect.set_options(timeout=10_000)
- langs: csharp
<Tabs groupId="test-runners" defaultValue="mstest" values={[ {label: 'MSTest', value: 'mstest'}, {label: 'NUnit', value: 'nunit'}, {label: 'xUnit', value: 'xunit'}, ] }>
using Microsoft.Playwright;
using Microsoft.Playwright.NUnit;
using NUnit.Framework;
namespace PlaywrightTests;
[Parallelizable(ParallelScope.Self)]
[TestFixture]
public class Tests : PageTest
{
[OneTimeSetUp]
public void GlobalSetup()
{
SetDefaultExpectTimeout(10_000);
}
// ...
}
using Microsoft.Playwright;
using Microsoft.Playwright.MSTest;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace PlaywrightTests;
[TestClass]
public class UnitTest1 : PageTest
{
[ClassInitialize]
public static void GlobalSetup(TestContext context)
{
SetDefaultExpectTimeout(10_000);
}
// ...
}
using Microsoft.Playwright;
using Microsoft.Playwright.Xunit;
namespace PlaywrightTests;
public class UnitTest1: PageTest
{
UnitTest1()
{
SetDefaultExpectTimeout(10_000);
}
// ...
}
from playwright.sync_api import expect
def test_foobar(page: Page) -> None:
expect(page.get_by_text("Name")).to_be_visible(timeout=10_000)
await Expect(Page.GetByText("Name")).ToBeVisibleAsync(new() { Timeout = 10_000 });