PopoverElement.java
package org.vaadin.addons.dramafinder.element;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;
import org.vaadin.addons.dramafinder.element.shared.HasAriaLabelElement;
import org.vaadin.addons.dramafinder.element.shared.HasStyleElement;
import org.vaadin.addons.dramafinder.element.shared.HasThemeElement;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
/**
* PlaywrightElement for {@code <vaadin-popover>}.
*/
public class PopoverElement extends VaadinElement implements HasThemeElement, HasStyleElement, HasAriaLabelElement {
public static final String FIELD_TAG_NAME = "vaadin-popover";
/** Create a {@code PopoverElement} by resolving the dialog with ARIA role. */
public PopoverElement(Page page) {
super(
page.getByRole(AriaRole.DIALOG)
.and(page.locator(FIELD_TAG_NAME)));
}
/** Create a {@code PopoverElement} from an existing locator. */
public PopoverElement(Locator locator) {
super(locator);
}
/** Whether the popover is open (visible). */
public boolean isOpen() {
return getLocator().isVisible();
}
/** Assert that the popover is open. */
public void assertOpen() {
assertThat(getLocator()).hasAttribute("opened", "");
}
/** Assert that the popover is closed (hidden). */
public void assertClosed() {
assertThat(getLocator()).isHidden();
}
/** Locator for the popover content. */
public Locator getContentLocator() {
return getLocator();
}
/** Get a popover by its accessible label. */
public static PopoverElement getByLabel(Page page, String label) {
return new PopoverElement(
page.getByRole(AriaRole.DIALOG, new Page.GetByRoleOptions().setName(label))
.and(page.locator(FIELD_TAG_NAME))
);
}
}