Drill Grounds — product requirements
Drill Grounds is a set of classic web practice pages: an index of twelve examples including form authentication with flash messages, add/remove elements, checkboxes, a bare dropdown, inputs, key presses, JavaScript dialogs, multiple windows, hovers, a sortable table, dynamic loading and HTTP status codes. Markup is deliberately plain so controls can be driven directly.
Problem. Anyone learning or validating web automation needs small, predictable pages with well-known behaviours: waits, native dialogs, new tabs, sorting, sessions and flash messages.
Users
- Automation learner — Practise each interaction type on a page with a single, obvious behaviour.
- Tool evaluator — Check that a tool handles waits, dialogs, windows, hover and session flows correctly.
Goals
- Every example behaves exactly as its heading and instructions say.
- Sessions and flash messages follow the classic one-shot pattern.
- Timed elements appear after a delay of about 2.5 seconds.
Out of scope
- Visual styling
- Examples not listed on the index
Contents
Index
Landing page linking every example.
- Title "Drill Grounds"; heading "Welcome to drill-grounds"; sub-heading "Available Examples"
- Links: Add/Remove Elements, Checkboxes, Dropdown, Dynamic Loading, Form Authentication, Hovers, Inputs, JavaScript Alerts, Key Presses, Multiple Windows, Status Codes, Sortable Data Tables
- Footer "Powered by Drill Grounds"
Form authentication
Login page, secure area and flash messages.
- Login page heading "Login Page" with Username, Password and "Login"
- URL /drill-grounds/secure; flash "You logged into a secure area!"; heading "Secure Area"; button "Logout"
- The flash close button (x) removes the flash
- Unknown, differently cased or empty username: "Your username is invalid!"
- Right username with a wrong password: "Your password is invalid!"
- The login page is shown again
- Flash "You must login to view the secure area!"
- Reloading the login page shows no flash
- Flash "You logged out of the secure area!"
- Opening /drill-grounds/secure redirects to login with "You must login to view the secure area!"
Native controls
Add/remove, checkboxes, dropdown, inputs and keys.
- 3 clicks give three buttons; deleting one leaves two; deleting all leaves none and "Add Element" still works
- "checkbox 1" unchecked, "checkbox 2" checked; after clicking both the reverse; reload restores the start state
- Heading "Dropdown List"; placeholder "Please select an option" is disabled and cannot be re-selected
- "Option 2" gives value "2"
- 12 then ArrowUp twice = 14
- -3 then ArrowDown = -4
- Typing "abc" leaves the field empty
- "a" gives "You entered: A"; Enter gives "You entered: ENTER"; Escape gives "You entered: ESCAPE"; Shift gives "You entered: SHIFT"
Browser features
Dialogs, windows and hovers.
- Alert (text "I am a JS Alert"): "You successfully clicked an alert"
- Confirm: dismiss "You clicked: Cancel"; accept "You clicked: Ok"
- Prompt: typing hello gives "You entered: hello"; dismiss gives "You entered: null"
- New tab /drill-grounds/windows/new titled "New Window" with heading "New Window"
- Original tab still shows "Opening a new window"
- Second avatar caption "name: user2"; other captions hidden; hidden again after moving away
- /drill-grounds/users/1 responds 200
Sortable table
Header sorting with direction toggle.
- Table #table1 columns Last Name, First Name, Email, Due, Web Site, Action; initial rows Smith, Bach, Doe, Conway
- Last Name ascending: Bach, Conway, Doe, Smith; descending: Smith, Doe, Conway, Bach
- Due ascending: $50.00, $50.00, $51.00, $100.00; descending starts with Doe $100.00 then Bach $51.00
Dynamic loading
Waits for delayed content.
- Heading "Example 1: Element on page that is hidden"; #finish exists but hidden
- Start shows "Loading... " and hides Start; after about 2.5 s "Hello World!" is visible and the loader hidden
- Heading "Example 2: Element rendered after the fact"; no #finish before Start
- "Hello World!" appears after about 2.5 s
- /drill-grounds/dynamic_loading/3 returns HTTP 404
Status codes
Pages returning chosen HTTP statuses.
- Links 200, 301, 404, 500 return HTTP 200, 301, 404, 500
- Body "This page returned a <code> status code."
- /drill-grounds/status_codes/418 returns 404 and the body says 404
Glossary and rules
| Flash | A one-shot message shown after a redirect and gone on the next page view. |
|---|