RadioButtonElement.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.FocusableElement;
import org.vaadin.addons.dramafinder.element.shared.HasAriaLabelElement;
import org.vaadin.addons.dramafinder.element.shared.HasEnabledElement;
import org.vaadin.addons.dramafinder.element.shared.HasHelperElement;
import org.vaadin.addons.dramafinder.element.shared.HasLabelElement;
import org.vaadin.addons.dramafinder.element.shared.HasStyleElement;
import org.vaadin.addons.dramafinder.element.shared.HasValidationPropertiesElement;
import org.vaadin.addons.dramafinder.element.shared.HasValueElement;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
/**
* PlaywrightElement for {@code <vaadin-radio-button>} (package-private).
*/
@PlaywrightElement(RadioButtonElement.FIELD_TAG_NAME)
class RadioButtonElement extends VaadinElement
implements FocusableElement, HasAriaLabelElement, HasEnabledElement,
HasHelperElement, HasValueElement, HasStyleElement, HasLabelElement, HasValidationPropertiesElement {
public static final String FIELD_TAG_NAME = "vaadin-radio-button";
/**
* Create a new {@code RadioButtonElement}.
*/
public RadioButtonElement(Locator locator) {
super(locator);
}
@Override
public Locator getEnabledLocator() {
return getInputLocator();
}
@Override
public Locator getAriaLabelLocator() {
return getInputLocator();
}
@Override
public Locator getFocusLocator() {
return getInputLocator();
}
/** Whether the radio is checked. */
boolean isChecked() {
return getInputLocator().isChecked();
}
/** Assert that the radio is checked. */
void assertChecked() {
assertThat(getInputLocator()).isChecked();
}
/** Assert that the radio is not checked. */
void assertNotChecked() {
assertThat(getInputLocator()).not().isChecked();
}
/** Check the radio. */
void check() {
getInputLocator().check();
}
/** Get a radio by its label within a given scope. */
static RadioButtonElement getByLabel(Locator locator, String label) {
return new RadioButtonElement(
locator.locator(FIELD_TAG_NAME)
.filter(new Locator.FilterOptions()
.setHas(locator.page().getByRole(AriaRole.RADIO,
new Page.GetByRoleOptions().setName(label)))).first());
}
}