Skip to main content

SelectElement

Playwright element wrapper for <vaadin-select>. Provides helpers to open the overlay and pick items by visible text, along with aria/placeholder/validation mixins.

Component Tag

vaadin-select

Implements

  • FocusableElement
  • HasAriaLabelElement
  • HasInputFieldElement
  • HasPrefixElement
  • HasThemeElement
  • HasPlaceholderElement
  • HasEnabledElement
  • HasTooltipElement
  • HasValidationPropertiesElement

Factory Methods

getByLabel

public static SelectElement getByLabel(Page page, String label)
Get the SelectElement by its label. Uses ARIA role BUTTON.
page
Page
required
The Playwright page
label
String
required
The accessible label of the field
Returns: The matching SelectElement

Constructor

SelectElement

public SelectElement(Locator locator)
Create a new SelectElement.
locator
Locator
required
The locator for the <vaadin-select> element

Methods

selectItem

public void selectItem(String item)
Select an item by its visible label.
item
String
required
Label of the item to select

getValue

@Override
public String getValue()
Get the selected value label for single-select. Returns: The label of the selected value

getAriaLabel

@Override
public String getAriaLabel()
Get the ARIA label text. Returns: The ARIA label or null if not set

assertAriaLabel

@Override
public void assertAriaLabel(String ariaLabel)
Assert the ARIA label text.
ariaLabel
String
Expected ARIA label, or null to assert it’s hidden

assertPlaceholder

@Override
public void assertPlaceholder(String placeholder)
Assert the placeholder text.
placeholder
String
required
Expected placeholder text

assertValue

@Override
public void assertValue(String expected)
Assert the selected value label equals the expected string.
expected
String
Expected label or empty for no selection

getInputLocator

@Override
public Locator getInputLocator()
Get the locator for the value slot element. Returns: Locator for the input element

getAriaLabelLocator

@Override
public Locator getAriaLabelLocator()
Get the locator for the sr-label slot. Returns: Locator for the ARIA label element

getFocusLocator

@Override
public Locator getFocusLocator()
Get the locator to use for focus operations. Returns: The input locator

getEnabledLocator

@Override
public Locator getEnabledLocator()
Get the locator to use for enabled/disabled checks. Returns: The input locator

getLabelLocator

@Override
public Locator getLabelLocator()
Get the locator for the label slot. Returns: Locator for the label element

Usage Examples

Basic Selection

SelectElement select = SelectElement.getByLabel(page, "Sort by");
select.assertVisible();
select.assertValue(null);
select.selectItem("Rating: high to low");
select.assertValue("Rating: high to low");

Validation

SelectElement select = SelectElement.getByLabel(page, "Select with theme");
select.assertValue(null);
select.assertValid();
ButtonElement.getByText(page, "Validate").click();
select.assertInvalid();
assertThat(select.getErrorMessageLocator()).hasText("Required field");

Placeholder

SelectElement select = SelectElement.getByLabel(page, "Select with placeholder and clear button");
select.assertVisible();
select.assertPlaceholder("Enter text here");
assertEquals("Enter text here", select.getPlaceholder());

Prefix

SelectElement select = SelectElement.getByLabel(page, "Sort by");
assertThat(select.getPrefixLocator()).isVisible();
assertThat(select.getPrefixLocator()).hasText("Prefix");
select.assertPrefixHasText("Prefix");
assertEquals("Prefix", select.getPrefixText());

Focus and Enabled State

SelectElement select = SelectElement.getByLabel(page, "Sort by");
select.assertIsFocused();

SelectElement disabledSelect = SelectElement.getByLabel(page, "Enabled/Disabled Field");
disabledSelect.assertDisabled();

page.locator("#enable-disable-button").click();
disabledSelect.assertEnabled();

ARIA Label

SelectElement select = SelectElement.getByLabel(page, "Invisible label");
select.assertVisible();
select.assertAriaLabel("Invisible label");

Tooltip

SelectElement select = SelectElement.getByLabel(page, "Sort by");
select.assertVisible();
select.assertTooltipHasText("Tooltip for select");

Build docs developers (and LLMs) love