A Randomly.online project

QA automation practice where the page checks your test

QA Playground is a free practice site for test automation. It has 23 challenges, from a plain login form to a closed shadow root inside an iframe. Point Selenium, Playwright or Cypress at a page and each task ticks itself the moment your script gets it right. No sign-up, and nothing to install.

  • 23 challenges
  • Selenium, Playwright, Cypress
  • Solutions in 4 frameworks
  • Free, no account
QA Playground practice hub listing automation challenges grouped by difficulty, from Basic Elements to Deep DOM and Auth Flows
The practice hub. Pick a challenge and point your test at it.

QA Playground in ten facts

What it isA website built to be tested: practice pages for browser automation, plus a demo shop
Addressqa.randomly.online, with a mirror on github.io for networks that block randomly.online
Challenges23, rated Beginner, Intermediate or Advanced
Test toolsAnything that drives a real browser: Selenium, Playwright, Cypress, WebdriverIO, Puppeteer
SolutionsReference code for every task in Playwright, Selenium Java, Selenium Python and Cypress
CheckingEach task ticks itself when the page sees your script do the right thing. Nothing to mark by hand
ExtrasA test data generator, a mock REST API, 60+ interview questions and a completion badge
PriceFree. No account, no email, no ads
Your dataProgress is saved in your own browser. The site runs no analytics
Made byDhruba Singha Roy, founder of Randomly.online

How does a practice page know your test passed?

Most practice sites hand you a form and leave the checking to you. Your script runs, nothing complains, and you cannot tell whether it clicked the right button or just a button. QA Playground watches instead.

Every element on a page has a goal written beside it, such as "double-click the box" or "switch into the third frame and click the button". When the page sees that exact thing happen, the task turns green. A wrong click leaves it alone.

Read tasks go one step further. They show a value that changes on every visit, and your script has to read it and type it back. A hardcoded answer fails the next run.

When you are stuck

Each element has a hint and its own reference solution in four frameworks. The solutions use the same locators the page was built around, so you can compare yours line by line.

What the practice pages look like

Deep DOM practice page with a button three iframes deep, its goal, and buttons for test cases, a hint and code
Deep DOM: a button three frames deep, then a closed shadow root.
Click Traps practice page with buttons that are covered by overlays, move away or enable late
Click Traps: the page that produces "element click intercepted".
Flaky Page practice page where elements fail at random, arrive after random delays and re-render
Flaky Page: random failures your waits have to survive.
Auth Flows practice page with a two-step login, a session that expires mid-task and a remember-me option
Auth Flows: two-step login and a session that expires mid-task.
Virtual Table practice page with 10,000 rows of which only a few exist in the DOM at a time
Virtual Table: 10,000 rows, only a few in the DOM at once.
API Playground with a mock REST API that supports auth tokens, chosen status codes, delays and rate limits
API Playground: a mock REST API with auth, delays and rate limits.

All 23 automation practice challenges

  • Basic ElementsBeginner
    Text boxes, checkboxes, radio buttons and forms
  • Popups & DialogsBeginner
    Browser alerts, confirm and prompt boxes, and modals
  • Advanced InputsIntermediate
    Date pickers, range sliders and file uploads
  • Tables & ListsIntermediate
    Read values out of dynamic data grids
  • Dynamic & WaitsIntermediate
    Elements that appear late, for explicit waits
  • Store PaginationIntermediate
    Walk through pages of products
  • Store Lazy LoadingIntermediate
    Scroll to make more content load
  • Progress BarIntermediate
    Wait on a bar that fills at its own pace
  • Locator TrapsIntermediate
    Dynamic IDs, shuffled classes, hidden spaces and shifting layouts
  • Real-World WidgetsIntermediate
    OTP boxes, tag inputs and star ratings
  • Accessibility LabIntermediate
    Find planted axe violations and finish a form by keyboard
  • Mouse & KeyboardAdvanced
    Drag and drop, hover, right-click and hotkeys
  • Frames & Shadow DOMAdvanced
    Switch into iframes and shadow roots
  • API InterceptionAdvanced
    Mock and change network requests from your test
  • Click TrapsAdvanced
    Covered, moving and late buttons that break a plain click
  • Deep DOMAdvanced
    Nested iframes, closed shadow roots and shadow DOM inside frames
  • Flaky PageAdvanced
    Random failures, random delays and re-rendered elements
  • Windows & TabsAdvanced
    New tabs, popups that close themselves, windows found by title
  • Sortable ListsAdvanced
    HTML5 drag and drop, press-and-hold sorting and a Kanban board
  • Virtual TableAdvanced
    10,000 rows with only a few in the DOM
  • Auth FlowsAdvanced
    Two-step login, sessions that expire mid-task, remembered logins
  • Canvas & ChartsAdvanced
    Click a moving canvas target, draw a stroke, read chart tooltips
  • Bug HuntAdvanced
    Find six real bugs planted in the QA Store

What else is on QA Playground?

  • Test data generatorUp to 100,000 rows of fake users, orders or card numbers as CSV, JSON or SQL. A seed makes the same rows come back every time.
  • Mock REST APIEndpoints with bearer tokens, the status code you ask for, added delay and a rate limit, for API tests without a backend.
  • Interview kitMore than 60 QA and SDET interview questions with answers, plus flashcards.
  • QA Store demoA full shop with search, cart, checkout and an admin area for end-to-end flows. Bug Hunt mode plants six real defects in it.
  • Completion badgePass every challenge and download a badge with your name on it. It records practice and is not a certification.

Which automation challenges should a beginner do first?

  1. Basic Elements. Text boxes, checkboxes, radio buttons and a submit. Learn to find an element and act on it.
  2. Popups & Dialogs. Browser alerts and confirm boxes block everything until you handle them. Better to meet that early.
  3. Dynamic & Waits. Elements that arrive late. This is where fixed sleeps start to fail and explicit waits start to make sense.
  4. Tables & Lists. Read a value out of a grid by its row and column, the way most real assertions work.
  5. Frames & Shadow DOM. Switch into an iframe and back out. After this, move on to the Advanced pages in any order.

QA automation practice questions, answered

What is QA Playground?

QA Playground is a free website built for practising test automation. It has 23 practice pages, from basic form inputs to nested iframes, closed shadow roots and a 10,000-row virtual table, plus a demo shop for end-to-end tests. Each task ticks itself when your Selenium, Playwright or Cypress script does the right thing. It lives at qa.randomly.online and is made by the founder of Randomly.online.

Is QA Playground free?

Yes. There is no paid tier, no account and no email sign-up. Every challenge, solution and tool is open to anyone who loads the page.

Which automation tools can I use?

Any tool that drives a real browser. Selenium in any language, Playwright, Cypress, WebdriverIO and Puppeteer all work, because the pages are ordinary web pages. The reference solutions are written in Playwright, Selenium Java, Selenium Python and Cypress.

How do I know my test actually worked?

The page checks it. Each element shows its goal, and the task turns green only when the page sees that exact action, such as a double-click on the right box. Read tasks show a value that changes on every visit, and your script has to read it and type it back, so a hardcoded answer fails the next run.

What is a good automation practice site for beginners?

Start with pages that teach one idea each. On QA Playground that order is Basic Elements, Popups & Dialogs, Dynamic & Waits, Tables & Lists and then Frames & Shadow DOM. Each page has a hint and a full solution when you get stuck.

Where can I practise flaky tests and waits?

The Flaky Page fails at random, delays elements by random amounts and re-renders them, so a test only passes if its waits are right. Dynamic & Waits and Progress Bar are gentler versions of the same problem.

Can I practise shadow DOM and iframes?

Yes. Frames & Shadow DOM covers switching into an iframe and reaching into an open shadow root. Deep DOM goes further: a button three iframes deep, a frame that rewrites itself, a closed shadow root and a shadow root inside an iframe.

Is there an API I can test against?

Yes. The API Playground is a mock REST API with bearer-token auth, the status code you ask for, added delay and a rate limit. API Interception is the browser side: mock or change a request from inside your UI test.

My office network blocks randomly.online. Is there another address?

Yes. The same site runs on GitHub Pages at d-xan.github.io. It updates at the same time as qa.randomly.online, and its code samples point at the github.io address so they run from there.

Does QA Playground save my progress?

Yes, in your own browser's local storage. It survives closing the tab but not clearing site data or switching browser. Nothing is sent to a server, and the site runs no analytics.

Is the QA Playground badge a certification?

No. Passing every challenge unlocks a completion badge with your name, which you can download and post. It records self-paced practice and is not an accredited qualification. For a formal credential, look at ISTQB Foundation Level.

Who made QA Playground?

Dhruba Singha Roy, who also builds Randomly.online. Questions and bug reports go to [email protected].