PracticeQAAutomation logoPracticeQAAutomation

All challenges

Focused pages for every tricky element. Every interactive element carries a data-testid.

52 of 52

🧱 Elements15

Text Box

Every native input type, a form that echoes back what you typed, and native HTML5 validation messages.

Check Box

A parent/child checkbox tree with indeterminate state and select-all.

Radio Button

A radio group including a disabled option.

Web Tables

Add, edit and delete rows, tick rows by the text in another cell, and sort columns — currency, dates and natural IDs across pages.

Buttons

Click, double-click and right-click handlers, plus a dynamic-id button.

Links

Simple, dynamic, new-tab, broken and redirecting links — plus a link with no text and one with junk whitespace.

Broken Images

Working vs. intentionally broken <img> sources.

Images

Lazy-loaded images, a responsive srcset image, a figure with caption, and a clickable image map.

SVG Elements

Clickable inline SVG icon buttons, an SVG shape, and an animated SVG.

Hidden Elements

Elements hidden via display:none, visibility:hidden, opacity:0, off-screen — and a button covered by an overlay.

Breadcrumbs & Pagination

A breadcrumb trail, a simple pager, a paginated data table (page size, ellipsis, jump-to-page, search, sort) and load-more.

Upload & Download

Upload a file and see its details; download a generated file.

Dynamic Properties

An id/class that changes, a button enabled after a delay, an input unlocked by clicking another element, a shifting color.

Locator Playground

Every Playwright locator (getByRole, getByText, getByLabel, getByTestId, filter, frames, shadow DOM…) and its Cypress equivalent, with snippets that run against the page.

XPath & Locator Functions

Whitespace and text nodes, pseudo-elements, a comment in the DOM, multi-language text, axes and not(), an XPath quiz and a live locator tester.

📝 Forms & Login3

🪟 Alerts, Frames & Windows3

🎛️ Widgets8

👆 Interactions7

⚡ Dynamic Behavior3

🎞️ Media & Scrolling5

✨ More8