Elements
Text box, check box, radio button, web tables, buttons, links, upload and dynamic properties.
Text Box
A simple form. Fill it in, submit it, and the values appear below – the classic first automation exercise.
Check Box
A folder tree with parent and child checkboxes. Selecting a parent selects its children, and a partly selected parent shows the indeterminate state.
Radio Button
Three radio buttons – one of them is disabled, which is the case people forget to test.
Web Tables
A table with add, edit, delete, search and pagination – the closest thing to a real application screen.
Buttons
Click, double click and right click – each one writes its own message, so you can prove which action happened.
Links
Links that work, links that open a new tab, and links that return different HTTP status codes.
Upload & Download
Download a file and verify it on disk, then upload a file and verify the path the application received.
Dynamic Properties
Elements that change after a few seconds. This is where Thread.sleep fails and explicit waits win.
Every control has an id and a test id that never change between builds.
Each page lists the assertions worth writing, including the cases people forget.
Compare your script with a working Selenium (Java) and Playwright (TypeScript) version.