CtrlK
BlogDocsLog inGet started
Tessl Logo

dramafinder/vaadin-playwright-test

Generate Playwright integration tests for Vaadin 25 views using the DramaFinder library. Use when the user wants to write IT tests for a Vaadin view, mentions DramaFinder, or asks about Playwright testing in a Vaadin project.

73

Quality

92%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

llms.txt

DramaFinder

Playwright element wrappers for Vaadin web components

DramaFinder provides typed Java wrappers around Vaadin web components for use with Playwright testing. Each wrapper exposes component-specific APIs for interaction and assertion, following accessibility-first lookup patterns using ARIA roles.

Quick Start

// Find elements by accessible label
TextFieldElement username = TextFieldElement.getByLabel(page, "Username");
ButtonElement submit = ButtonElement.getByText(page, "Submit");

// Interact and assert
username.setValue("john.doe");
username.assertValue("john.doe");
submit.click();

API Reference

The complete public API of every element wrapper (methods, signatures, one-line descriptions) is auto-generated from source into a single file:

  • api-reference.md

Do not download or unzip the DramaFinder jar/sources to find its API — fetch the file above (one request) instead. It is regenerated on every release and cannot drift from the shipped code.

Documentation

  • AGENTS.md - Repository guidelines, coding conventions, pitfalls & patterns
  • TESTING.md - Testing guide and instructions
  • README.md - Project overview and setup

Element Specifications

Signatures for every element live in the auto-generated api-reference.md. The files below are hand-written prose docs, kept only for components whose behaviour isn't obvious from the signatures:

Key Patterns

Element Lookup

Elements are found using accessible names via ARIA roles:

// By label (most common)
TextFieldElement.getByLabel(page, "Email")
ButtonElement.getByText(page, "Save")
SelectElement.getByLabel(page, "Country")

// Scoped lookup within container
TextFieldElement.getByLabel(formLocator, "Name")

ARIA Roles by Component

  • Text fields: AriaRole.TEXTBOX
  • Number fields: AriaRole.SPINBUTTON
  • Date/time pickers: AriaRole.COMBOBOX
  • Buttons: AriaRole.BUTTON
  • Checkboxes: AriaRole.CHECKBOX
  • Radio buttons: AriaRole.RADIO
  • Dialogs: AriaRole.DIALOG
  • List boxes: AriaRole.LISTBOX
  • Menus: AriaRole.MENU, AriaRole.MENUITEM

Assertion Methods

Each element provides assertion methods that auto-retry:

field.assertValue("expected");
field.assertEnabled();
field.assertDisabled();
field.assertRequired();
field.assertInvalid();
dialog.assertOpen();
dialog.assertClosed();

Mixin Interfaces

Common behaviors are provided via interfaces:

  • HasInputFieldElement - value get/set
  • HasValidationPropertiesElement - required, invalid, error message
  • HasEnabledElement - enabled/disabled state
  • FocusableElement - focus/blur operations
  • HasThemeElement - theme variant assertions
  • HasClearButtonElement - clear button click
  • HasPlaceholderElement - placeholder text
  • HasTooltipElement - tooltip content
  • HasLabelElement - label text
  • HasHelperElement - helper text

Build Commands

# Build with tests
./mvnw clean install

# Run integration tests
./mvnw -B verify --file pom.xml

# Run single IT test
./mvnw -Dit.test=MyViewIT -Pit verify

Source Code

  • Main elements: src/main/java/org/vaadin/addons/dramafinder/element/
  • Shared mixins: src/main/java/org/vaadin/addons/dramafinder/element/shared/
  • Integration tests: src/test/java/**/*IT.java

.mcp.json

llms.txt

PLAN.md

README.md

tile.json

TODO.md

tsconfig.json