VALIDATION LAB•UI ELEMENTS

Core UI Testing · UI Elements

Start with Inputs

Follow the same order as the left menu. Begin with Inputs, practise one interaction at a time, and move to Forms when you are ready for complete journeys.

38 modules10 advanced · 14 intermediate · 14 beginnerAll TypeScript · zero flake

UI Elements

UI building blocks

Follow the recommended path, or filter the catalog by difficulty when you know what to practise next.

28 of 28 modules
View:
Step 1Beginner

Inputs

Validate an email + password login form, surface a red error on invalid email, and assert the success state once both fields satisfy their rules.

Open module →

Step 2Beginner

Buttons

Exercise pointer-first button semantics through clear, user-facing feedback messages: primary click, double-click isolation, secondary-click context menu, hover-then-confirm, disabled guards, and loading/busy paths.

Open module →

Step 3Intermediate

Keyboard Keys

Learn how typing, focus, selection, paste, masks, OTP fields, and keyboard navigation behave in real forms.

Open module →

Step 4Beginner

Single Select

Select a value from a native dropdown and assert the downstream summary updates.

Open module →

Step 5Intermediate

Multi Select

Select several skills, verify chips render in selection order, and assert removal via chip × button.

Open module →

Step 6Intermediate

Searchable Select

Type-to-filter a country list, navigate suggestions with the keyboard, and pick by Enter.

Open module →

Step 7Beginner

Checkboxes

Toggle individual and bulk checkboxes; verify indeterminate parent state when only some children are selected.

Open module →

Step 8Beginner

Radio Buttons

Switch between radio options and validate that exactly one option is selected at any time.

Open module →

Step 9Intermediate

Slider Interaction Lab

Exercise slider changes through drag, track click, keyboard arrows, and direct numeric input while comparing visual, displayed, and submitted values.

Open module →

Step 10Beginner

Notifications

Trigger success, info, warning, and error toasts; assert visibility/text; verify auto-dismiss and manual close behavior.

Open module →

Step 11Beginner

Toast Messages

Practice clear, non-blocking status messages: show a successful profile save, handle a failed save, and verify each toast's lifetime and dismissal behavior.

Open module →

Step 12Intermediate

JavaScript Alerts

Handle native alert, confirm, and prompt dialogs with Playwright dialog listeners, accept/dismiss flows, and message assertions.

Open module →

Step 13Beginner

Loader / Spinner

Trigger an async fetch, verify the spinner is visible during load, and confirm it disappears once the data arrives.

Open module →

Step 14Beginner

Static Table

Practice deterministic table assertions against a fixed Name, Email, Role, Status grid and click an action button inside a specific row.

Open module →

Step 15Advanced

Dynamic Table

Search generated users, sort by name, filter active users, paginate, validate row counts, and click edit/delete for a specific row.

Open module →

Step 16Intermediate

Date Picker

Set a time with the clock input, open the calendar, pick a day, and verify the readonly field matches `HH:MM - DD/MM/YYYY` (local calendar parts, stable for automation).

Open module →

Step 17Advanced

Date Range Picker

Set start/end times, pick day span in two taps, and validate the pill shows `HH:MM - DD/MM/YYYY → …` including auto-swap.

Open module →

Step 18Intermediate

File Upload

Upload an image, verify size + type validation, and reject files that exceed the budget.

Open module →

Step 19Intermediate

File Download

Download TXT, PDF, and CSV files and assert that the browser download event, suggested filename, and saved artifact are correct.

Open module →

Step 20Intermediate

PDF Download

Validate a dedicated sample PDF export: the download starts, the filename ends with .pdf, and the saved file is not empty.

Open module →

Step 21Intermediate

Generate Text File

Type custom text into a textarea, generate a .txt file, download it, and validate both filename and downloaded content.

Open module →

Step 22Intermediate

Image Handling Lab

Validate working, broken, slow, unauthorized, and corrupted image states with fallbacks, loading indicators, retry actions, and layout stability checks.

Open module →

Step 23Advanced

Drag & Drop

Reorder a Kanban card across columns using mouse events and verify the destination column owns it.

Open module →

Step 24Beginner

Tabs

Switch between three tabs, verify only the active panel renders, and confirm the URL hash updates.

Open module →

Step 25Advanced

New Tab / Window

Click a link that opens a new tab and assert against the content of the popup page.

Open module →

Step 26Advanced

Iframes

Reach into an iframe, fill a form inside it, and verify the parent receives the submission via postMessage.

Open module →

Step 27Beginner

Accordions

Expand a section, verify only one section is open at a time, and confirm the icon rotates.

Open module →

Step 28Advanced

Infinite Scroll

Scroll a virtualized list until the target item appears, asserting the loader disappears between batches.

Open module →