Back to Ladder
Stage 4: Page States & DialogsIntermediate
Page States & Dialogs
Automate advanced interactions: iframes, JavaScript alerts, file transfers, and popup windows.
Status0% Complete
0/30
Solved
~9h
Hours
0/680
Points
Modules
6 Modules1
Module 1: Page Object Model
Implement Page Object Models, construct locators inside class variables, create action/assertion methods, and group components.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Page Object Model Design Pattern class LoginPagePOM pattern | Intermediate | 20 | Start Track | |
| Defining POM Locators in constructor this.usernameInputconstructor | Intermediate | 20 | Start Track | |
| POM class action login method async loginaction methods | Intermediate | 20 | Start Track | |
| POM class assertion verification verifyTitleassert methods | Intermediate | 20 | Start Track | |
| Using Page Objects in spec files importnew LoginPage | Intermediate | 20 | Start Track | |
| Component Object Navigation Navbar NavbarComponent Objects | Intermediate | 20 | Start Track |
2
Module 2: Fixtures & Hooks
Structure test suites hooks: beforeAll, afterAll, beforeEach, afterEach, and extend custom fixtures setups.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Group Setups using beforeAll hook test.beforeAllsetup hook | Intermediate | 20 | Start Track | |
| Group Teardowns using afterAll hook test.afterAllteardown hook | Intermediate | 20 | Start Track | |
| Running setup inside beforeEach test.beforeEachsetup hook | Intermediate | 20 | Start Track | |
| Running cleanup inside afterEach test.afterEachcleanup hook | Intermediate | 20 | Start Track | |
| Built-in fixtures page context browser pagecontextbrowser | Intermediate | 20 | Start Track | |
| Creating Custom Fixtures extend test.extendcustom fixtures | Intermediate | 20 | Start Track |
3
Module 3: File Transfers
Handle file uploads, upload from buffer, manage file choosers, wait for downloads, and save files.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Listening for File Chooser events page.waitForEvent('filechooser')fileChooser | Intermediate | 20 | Start Track | |
| Wait for file downloads events page.waitForEvent('download')downloads | Intermediate | 20 | Start Track | |
| Extracting path and suggested filename download.suggestedFilenamepath | Intermediate | 20 | Start Track | |
| Save download files locally download.saveAsdownloads | Intermediate | 20 | Start Track | |
| Cancel running download streams download.cancelcancel downloads | Intermediate | 20 | Start Track | |
| Upload virtual files from Buffer setInputFilesbuffers | Intermediate | 20 | Start Track |
4
Module 4: Tabs & Contexts
Manage multi-tab workflows, capture popups, orchestrate isolated contexts, and close sessions.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Manage multiple tabs context pages context.pagestabs coordination | Advanced | 30 | Start Track | |
| Popup Page Capture and asserts page.waitForEvent('popup')popups | Advanced | 30 | Start Track | |
| Creating multiple isolated contexts browser.newContextsession isolation | Advanced | 30 | Start Track | |
| Close secondary context sessions context.closecleanup contexts | Advanced | 30 | Start Track |
5
Module 5: Iframes & Dialogs
Traverse iframe scopes, handle nested frames, and accept/dismiss browser JS dialog events.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Iframe Element access frameLocator page.frameLocatoriframes | Intermediate | 20 | Start Track | |
| Locating Frames by name or URL page.frameframes | Intermediate | 20 | Start Track | |
| Chaining Nested frameLocator rules nested iframeschaining | Intermediate | 20 | Start Track | |
| Handling window alert dialogs page.on('dialog')dialogs | Intermediate | 20 | Start Track |
6
Module 6: Custom Fixtures
Extend test scopes, manage worker fixtures, yield values with use(), and write auto fixtures.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Test-scoped custom fixtures setups test.extendtest scope | Advanced | 30 | Start Track | |
| Worker-scoped fixtures shared states scope: 'worker'worker scope | Advanced | 30 | Start Track | |
| Fixtures Teardowns post use yield use()fixture teardown | Advanced | 30 | Start Track | |
| Auto Fixtures running automatically auto: trueauto fixtures | Advanced | 30 | Start Track |