14 KiB
class: LocatorAssertions
- langs: java, python
The [LocatorAssertions] class provides assertion methods that can be used to make assertions about the [Locator] state in the tests. A new instance of [LocatorAssertions] is created by calling [method: PlaywrightAssertions.assertThatLocator]:
...
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
public class TestLocator {
...
@Test
void statusBecomesSubmitted() {
...
page.click("#submit-button");
assertThat(page.locator(".status")).hasText("Submitted");
}
}
method: LocatorAssertions.not
- langs: java
- returns: <[LocatorAssertions]>
Makes the assertion check for the opposite condition. For example, this code tests that the Locator doesn't contain text "error":
assertThat(locator).not().containsText("error");
method: LocatorAssertions.NotToBeChecked
- langs: python
The opposite of [method: LocatorAssertions.toBeChecked].
option: LocatorAssertions.NotToBeChecked.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToBeDisabled
- langs: python
The opposite of [method: LocatorAssertions.toBeDisabled].
option: LocatorAssertions.NotToBeDisabled.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToBeEditable
- langs: python
The opposite of [method: LocatorAssertions.toBeEditable].
option: LocatorAssertions.NotToBeEditable.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToBeEmpty
- langs: python
The opposite of [method: LocatorAssertions.toBeEmpty].
option: LocatorAssertions.NotToBeEmpty.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToBeEnabled
- langs: python
The opposite of [method: LocatorAssertions.toBeEnabled].
option: LocatorAssertions.NotToBeEnabled.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToBeFocused
- langs: python
The opposite of [method: LocatorAssertions.toBeFocused].
option: LocatorAssertions.NotToBeFocused.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToBeHidden
- langs: python
The opposite of [method: LocatorAssertions.toBeHidden].
option: LocatorAssertions.NotToBeHidden.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToBeVisible
- langs: python
The opposite of [method: LocatorAssertions.toBeVisible].
option: LocatorAssertions.NotToBeVisible.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToContainText
- langs: python
The opposite of [method: LocatorAssertions.toContainText].
param: LocatorAssertions.NotToContainText.expected
expected<[string]|[RegExp]|[Array]<[string]>|[Array]<[RegExp]>>
Expected substring or RegExp or a list of those.
option: LocatorAssertions.NotToContainText.useInnerText
useInnerText<[boolean]>
Whether to use element.innerText instead of element.textContent when retrieving DOM node text.
option: LocatorAssertions.NotToContainText.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToHaveAttribute
- langs: python
The opposite of [method: LocatorAssertions.toHaveAttribute].
param: LocatorAssertions.NotToHaveAttribute.name
name<[string]>
Attribute name.
param: LocatorAssertions.NotToHaveAttribute.value
value<[string]|[RegExp]>
Expected attribute value.
option: LocatorAssertions.NotToHaveAttribute.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToHaveClass
- langs: python
The opposite of [method: LocatorAssertions.toHaveClass].
param: LocatorAssertions.NotToHaveClass.expected
expected<[string]|[RegExp]|[Array]<[string]>|[Array]<[RegExp]>>
Expected class or RegExp or a list of those.
option: LocatorAssertions.NotToHaveClass.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToHaveCount
- langs: python
The opposite of [method: LocatorAssertions.toHaveCount].
param: LocatorAssertions.NotToHaveCount.count
count<[int]>
Expected count.
option: LocatorAssertions.NotToHaveCount.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToHaveCSS
- langs: python
The opposite of [method: LocatorAssertions.toHaveCSS].
param: LocatorAssertions.NotToHaveCSS.name
name<[string]>
CSS property name.
param: LocatorAssertions.NotToHaveCSS.value
value<[string]|[RegExp]>
CSS property value.
option: LocatorAssertions.NotToHaveCSS.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToHaveId
- langs: python
The opposite of [method: LocatorAssertions.toHaveId].
param: LocatorAssertions.NotToHaveId.id
id<[string]|[RegExp]>
Element id.
option: LocatorAssertions.NotToHaveId.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToHaveJSProperty
- langs: python
The opposite of [method: LocatorAssertions.toHaveJSProperty].
param: LocatorAssertions.NotToHaveJSProperty.name
name<[string]>
Property name.
param: LocatorAssertions.NotToHaveJSProperty.value
value<[Serializable]>
Property value.
option: LocatorAssertions.NotToHaveJSProperty.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToHaveText
- langs: python
The opposite of [method: LocatorAssertions.toHaveText].
param: LocatorAssertions.NotToHaveText.expected
expected<[string]|[RegExp]|[Array]<[string]>|[Array]<[RegExp]>>
Expected substring or RegExp or a list of those.
option: LocatorAssertions.NotToHaveText.useInnerText
useInnerText<[boolean]>
Whether to use element.innerText instead of element.textContent when retrieving DOM node text.
option: LocatorAssertions.NotToHaveText.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.NotToHaveValue
- langs: python
The opposite of [method: LocatorAssertions.toHaveValue].
param: LocatorAssertions.NotToHaveValue.value
value<[string]|[RegExp]>
Expected value.
option: LocatorAssertions.NotToHaveValue.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toBeChecked
- langs:
- alias-java: isChecked
Ensures the [Locator] points to a checked input.
assertThat(page.locator(".subscribe")).isChecked();
option: LocatorAssertions.toBeChecked.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toBeDisabled
- langs:
- alias-java: isDisabled
Ensures the [Locator] points to a disabled element.
assertThat(page.locator("button.submit")).isDisabled();
option: LocatorAssertions.toBeDisabled.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toBeEditable
- langs:
- alias-java: isEditable
Ensures the [Locator] points to an editable element.
assertThat(page.locator("input")).isEditable();
option: LocatorAssertions.toBeEditable.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toBeEmpty
- langs:
- alias-java: isEmpty
Ensures the [Locator] points to an empty editable element or to a DOM node that has no text.
assertThat(page.locator("div.warning")).isEmpty();
option: LocatorAssertions.toBeEmpty.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toBeEnabled
- langs:
- alias-java: isEnabled
Ensures the [Locator] points to an enabled element.
assertThat(page.locator("button.submit")).isEnabled();
option: LocatorAssertions.toBeEnabled.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toBeFocused
- langs:
- alias-java: isFocused
Ensures the [Locator] points to a focused DOM node.
assertThat(page.locator("input")).isFocused();
option: LocatorAssertions.toBeFocused.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toBeHidden
- langs:
- alias-java: isHidden
Ensures the [Locator] points to a hidden DOM node, which is the opposite of visible.
assertThat(page.locator(".my-element")).isHidden();
option: LocatorAssertions.toBeHidden.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toBeVisible
- langs:
- alias-java: isVisible
Ensures the [Locator] points to a visible DOM node.
assertThat(page.locator(".my-element")).toBeVisible();
option: LocatorAssertions.toBeVisible.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toContainText
- langs:
- alias-java: containsText
Ensures the [Locator] points to an element that contains the given text. You can use regular expressions for the value as well.
assertThat(page.locator(".title")).containsText("substring");
Note that if array is passed as an expected value, entire lists can be asserted:
assertThat(page.locator("list > .list-item")).containsText(new String[] {"Text 1", "Text 4", "Text 5"});
param: LocatorAssertions.toContainText.expected
expected<[string]|[RegExp]|[Array]<[string]>|[Array]<[RegExp]>>
Expected substring or RegExp or a list of those.
option: LocatorAssertions.toContainText.useInnerText
useInnerText<[boolean]>
Whether to use element.innerText instead of element.textContent when retrieving DOM node text.
option: LocatorAssertions.toContainText.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toHaveAttribute
- langs:
- alias-java: hasAttribute
Ensures the [Locator] points to an element with given attribute.
assertThat(page.locator("input")).hasAttribute("type", "text");
param: LocatorAssertions.toHaveAttribute.name
name<[string]>
Attribute name.
param: LocatorAssertions.toHaveAttribute.value
value<[string]|[RegExp]>
Expected attribute value.
option: LocatorAssertions.toHaveAttribute.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toHaveClass
- langs:
- alias-java: hasClass
Ensures the [Locator] points to an element with given CSS class.
assertThat(page.locator("#component")).hasClass(Pattern.compile("selected"));
Note that if array is passed as an expected value, entire lists can be asserted:
assertThat(page.locator("list > .component")).hasClass(new String[] {"component", "component selected", "component"});
param: LocatorAssertions.toHaveClass.expected
expected<[string]|[RegExp]|[Array]<[string]>|[Array]<[RegExp]>>
Expected class or RegExp or a list of those.
option: LocatorAssertions.toHaveClass.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toHaveCount
- langs:
- alias-java: hasCount
Ensures the [Locator] resolves to an exact number of DOM nodes.
assertThat(page.locator("list > .component")).hasCount(3);
param: LocatorAssertions.toHaveCount.count
count<[int]>
Expected count.
option: LocatorAssertions.toHaveCount.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toHaveCSS
- langs:
- alias-java: hasCSS
Ensures the [Locator] resolves to an element with the given computed CSS style.
assertThat(page.locator("button")).hasCSS("display", "flex");
param: LocatorAssertions.toHaveCSS.name
name<[string]>
CSS property name.
param: LocatorAssertions.toHaveCSS.value
value<[string]|[RegExp]>
CSS property value.
option: LocatorAssertions.toHaveCSS.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toHaveId
- langs:
- alias-java: hasId
Ensures the [Locator] points to an element with the given DOM Node ID.
assertThat(page.locator("input")).hasId("lastname");
param: LocatorAssertions.toHaveId.id
id<[string]|[RegExp]>
Element id.
option: LocatorAssertions.toHaveId.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toHaveJSProperty
- langs:
- alias-java: hasJSProperty
Ensures the [Locator] points to an element with given JavaScript property. Note that this property can be of a primitive type as well as a plain serializable JavaScript object.
assertThat(page.locator("input")).hasJSProperty("type", "text");
param: LocatorAssertions.toHaveJSProperty.name
name<[string]>
Property name.
param: LocatorAssertions.toHaveJSProperty.value
value<[Serializable]>
Property value.
option: LocatorAssertions.toHaveJSProperty.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toHaveText
- langs:
- alias-java: hasText
Ensures the [Locator] points to an element with the given text. You can use regular expressions for the value as well.
assertThat(page.locator(".title")).hasText("Welcome, Test User");
assertThat(page.locator(".title")).hasText(Pattern.compile("Welcome, .*"));
Note that if array is passed as an expected value, entire lists can be asserted:
assertThat(page.locator("list > .component")).hasText(new String[] {"Text 1", "Text 2", "Text 3"});
param: LocatorAssertions.toHaveText.expected
expected<[string]|[RegExp]|[Array]<[string]>|[Array]<[RegExp]>>
Expected substring or RegExp or a list of those.
option: LocatorAssertions.toHaveText.useInnerText
useInnerText<[boolean]>
Whether to use element.innerText instead of element.textContent when retrieving DOM node text.
option: LocatorAssertions.toHaveText.timeout = %%-assertions-timeout-%%
method: LocatorAssertions.toHaveValue
- langs:
- alias-java: hasValue
Ensures the [Locator] points to an element with the given input value. You can use regular expressions for the value as well.
assertThat(page.locator("input[type=number]")).hasValue(Pattern.compile("[0-9]"));
param: LocatorAssertions.toHaveValue.value
value<[string]|[RegExp]>
Expected value.