Setting Up Playwright#

Installation#

npm install -D @playwright/test
npx playwright install

Tip

Use npx playwright install chromium to install only Chromium browser.

Project Initialization#

npx playwright test --init

Basic Project Structure#

tests/
├── e2e/           # End-to-end tests
└── pages/         # Page object models

Sample Test#

// tests/e2e/basic.spec.ts
import { test, expect } from "@playwright/test";

test("page navigation", async ({ page }) => {
  await page.goto("/");
  await expect(page).toHaveTitle(/Home/);
  await expect(page.locator("h1")).toBeVisible();
});

Basic Configuration#

// playwright.config.ts
import { defineConfig, devices } from "@playwright/test";

export default defineConfig({
  testDir: "./tests",
  use: {
    baseURL: "http://localhost:3000",
    screenshot: "only-on-failure",
  },
  projects: [{ name: "chromium", use: devices["Desktop Chrome"] }],
});

Running Tests#

npx playwright test
npx playwright test --ui  # With UI mode