RadioButtonElement.java
package org.vaadin.addons.dramafinder.element;
import com.microsoft.playwright.Locator;
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.HasCheckedElement;
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.utils.AccessibleNameLocator;
/**
* PlaywrightElement for {@code <vaadin-radio-button>} (package-private).
* <p>
* The checked-state API comes from {@link HasCheckedElement}.
*/
@PlaywrightElement(RadioButtonElement.FIELD_TAG_NAME)
class RadioButtonElement extends VaadinElement
implements FocusableElement, HasAriaLabelElement, HasCheckedElement, HasEnabledElement,
HasHelperElement, HasStyleElement, HasLabelElement, HasValidationPropertiesElement {
public static final String FIELD_TAG_NAME = "vaadin-radio-button";
/**
* Create a new {@code RadioButtonElement}.
*/
public RadioButtonElement(Locator locator) {
super(locator);
}
/**
* Get a radio by its full label within a given scope.
* <p>
* The label must match the radio button's whole accessible name, and two
* radios sharing it inside the scope fail with a Playwright strict-mode
* error rather than resolving to the first one in the DOM.
*/
static RadioButtonElement getByLabel(Locator locator, String label) {
return new RadioButtonElement(
AccessibleNameLocator.findExact(locator, FIELD_TAG_NAME, AriaRole.RADIO, label));
}
}