Serve the hub, pick a framework, and copy the examples — each one targets a real page and real selectors in this hub, so it runs as-is once the site is up on localhost:8000.
index.html, run a static server so every page has a real URL (some browsers restrict things on file://):
cd automation-practice-hub
python -m http.server 8000
# open http://localhost:8000cd automation-practice-hub
npx serve -l 8000
# or: npx http-server -p 8000cd automation-practice-hub
php -S localhost:8000
# open http://localhost:8000#inventory, #pim) and keep login state in memory. Deep-linking straight to a gated route won't work — your script must log in first, then interact. That's realistic and intentional.WebDriver in Java & Python. Waits, alerts, frames, windows, drag & drop — mapped to the hub's selectors.
Open Selenium guideModern JS/TS & Python. Auto-waiting, getByTestId, dialogs, frame locators, API testing built in.
Mobile-web automation against the hub on a real device/emulator, plus how native testing differs.
Open Appium guideRun the included mock server, then hit it from REST Assured, Playwright, Python or Postman. Interactive playground included.
Open API guideEvery interactive element carries a stable id and a data-test attribute. Prefer data-test — it's designed to survive restyling. In CSS-selector form that's [data-test='login-button']; Playwright can address it directly with getByTestId('login-button') once you point its test-id attribute at data-test (shown in the Playwright guide).