All systems operational … …
--:--:--
// guides & concepts

Learn Playwright

Beginner

Playwright vs Selenium: When to choose what

Compare auto-waits, multi-browser support, speed and ecosystem maturity to pick the right tool.

Node.jsPythonJava
See demo β†’
Beginner

Writing your first Playwright test in JS

Install @playwright/test, write a page.goto() flow, use locators and run in headed/headless mode.

JavaScript@playwright/test
Try it β†’
Intermediate

Playwright Auto-Waits & Assertions

Understand how Playwright's built-in retry-ability works and write stable expect() assertions.

expect()locator.waitFor()
Read guide β†’
Intermediate

Network Interception & API Mocking

Use page.route() to intercept requests, mock API responses and test error states without a backend.

page.route()MSW
Read guide β†’
Advanced

Visual Regression Testing with Playwright

Capture screenshots, compare pixel diffs and integrate visual checks into your CI pipeline.

toHaveScreenshot()CI/CD
Read guide β†’
Advanced

Parallel Testing & Sharding in CI

Split tests across workers and machines using Playwright's sharding feature for faster pipelines.

workers--shardGitHub Actions
Read guide β†’
// hands-on

Live Practice Lab

πŸ–± Click & Fill Lab


Result here…
await page.fill('#pw-name', 'Dnyaneshwar');
await page.fill('#pw-email', 'dg@dgtechqa.com');
await page.click('button');
await expect(page.locator('#result')).toBeVisible();

🌐 Navigation & URL Assertions

…
await page.goto('https://dgtechqa.com');
await expect(page).toHaveURL(/dgtechqa/);
await expect(page).toHaveTitle('DGTechQA');

βœ… Soft Assertions Demo

…
const sa = expect.soft(page);
await sa.toHaveTitle('DGTechQA');
await sa.toHaveURL(/index/);
// Test continues even if one assertion fails