Skip to main content

Playwright + TypeScript Project Package.json (Explained)

Playwright + TypeScript Project Package.json (Explained)

If you're setting up end-to-end testing using Playwright with TypeScript, your package.json file becomes the core configuration hub. It defines dependencies, scripts, tooling, and project metadata. Below is a clean, production-ready example — followed by a full explanation.

✅ Example package.json for Playwright + TypeScript

{
  "name": "playwright-ts-demo",
  "version": "1.0.0",
  "private": true,
  "description": "Playwright end-to-end tests using TypeScript",
  "scripts": {
    "test": "playwright test",
    "test:ui": "playwright test --ui",
    "test:headed": "playwright test --headed",
    "test:debug": "playwright test --debug",
    "codegen": "playwright codegen",
    "show-report": "playwright show-report",
    "format": "prettier --write .",
    "lint": "eslint . --ext .ts"
  },
  "devDependencies": {
    "@playwright/test": "^1.48.0",
    "typescript": "^5.6.0",
    "ts-node": "^10.9.2",
    "eslint": "^9.0.0",
    "@typescript-eslint/eslint-plugin": "^8.0.0",
    "@typescript-eslint/parser": "^8.0.0",
    "prettier": "^3.3.0"
  }
}

๐Ÿ“Œ What Each Section Means

1️⃣ Project Metadata


"name": "playwright-ts-demo",
"version": "1.0.0",
"private": true,
"description": "Playwright end-to-end tests using TypeScript"
  • name — project identifier
  • version — not important unless publishing
  • private: true — prevents accidental npm publishing
  • description — explains project purpose

2️⃣ Scripts — Your Most Used Commands


"scripts": {
  "test": "playwright test",
  "test:ui": "playwright test --ui",
  "test:headed": "playwright test --headed",
  "test:debug": "playwright test --debug"
}
  • npm test — runs all Playwright tests
  • npm run test:ui — launches graphical test runner
  • npm run test:headed — shows visible browser
  • npm run test:debug — step-by-step debugging

Utility Scripts

  • codegen — auto-generates test scripts while browsing
  • show-report — opens last HTML test report
  • format — formats with Prettier
  • lint — checks TypeScript code quality

3️⃣ Dev Dependencies — Required for Testing

  • @playwright/test — Playwright test framework
  • typescript — TypeScript compiler
  • ts-node — run .ts files directly
  • eslint + TypeScript plugins — linting
  • prettier — formatting

These tools are only needed during development, not production.


๐Ÿ“‚ Typical Playwright + TS Project Structure


project/
 ├─ tests/
 │   └─ example.spec.ts
 ├─ playwright.config.ts
 ├─ package.json
 └─ tsconfig.json

๐Ÿงช Example Test File (example.spec.ts)

import { test, expect } from '@playwright/test';

test('homepage has title', async ({ page }) => {
  await page.goto('https://example.com');
  await expect(page).toHaveTitle(/Example/);
});

๐Ÿš€ Quick Setup Commands

npm init -y
npm install --save-dev @playwright/test typescript
npx playwright install
npx tsc --init

✅ Summary

  • package.json organizes Playwright tooling
  • Scripts simplify test execution
  • Dev dependencies enable TypeScript, linting & formatting
  • Perfect for scalable automated testing

Now you're ready to build reliable browser automation using Playwright and TypeScript!

Comments

Popular posts from this blog

Step-by-Step: Launch Browser, Context, and Page in Playwright and Run Test and Configuration (JavaScript)

๐ŸŽฅ Setup Browser, Context, Page & Run Config Test Scripts with package.json & playwright.config.js Step-by-Step: Launch Browser, Context, and Page in Playwright and Run Test and Configuration (JavaScript) 1. Install Playwright You can install Playwright using the following command: npm init playwright@latest 2. Create a Basic Test Script Understand the core Playwright architecture: Element Description browser Controls the browser instance (like Chrome, Firefox, etc.) context Acts like a separate browser profile (cookies, localStorage are isolated) page A single browser tab where interaction happens 3. Run the Test npx playwright test example.spec.js Ways to Run TypeScript Tests Way Command Notes ๐ŸŸข Via npx npx playwright test Uses built-in TypeScript support ๐ŸŸข With s...

Playwright Test Structure in Details -Session-02

๐ŸŽฅ Playwright: test.only, Hooks & Grouping with test.describe Explained Let’s go step-by-step , showing how to build from a single test , to using beforeEach / afterEach , and then organizing things with test.describe . ✅ Step 1: Basic Single Test with test.only import { test, expect } from '@playwright/test' ; test. only ( '๐Ÿš€ Basic test - check title' , async ({ page }) => { await page. goto ( 'https://example.com' ); await expect (page). toHaveTitle ( /Example Domain/ ); }); test.only ensures only this test runs — great for debugging. ✅ Step 2: Add beforeEach and afterEach import { test, expect } from '@playwright/test' ; test. beforeEach ( async ({ page }) => { console . log ( '๐Ÿ”„ Setting up before each test' ); await page. goto ( 'https://example.com' ); }); test. afterEach ( async ({ page }, testInfo) => { console . log ( `๐Ÿ“ฆ Finished test: ${testInfo.title} `); }); test. only ( ...

How to Maximize a Browser window using Playwright Java

  Playwright itself does not have a direct maximize () method like some other browser automation tools, but you can achieve the effect by setting the viewport to the screen size of your display. Below are ways to handle Maximize a browser in Playwright Java  ร˜   Setting the viewport to the screen size  o    setViewportSize(1920, 1080): This sets the browser window to a full HD resolution, effectively maximizing it. o    setHeadless(false): Ensures the browser runs in a visible mode so you can see the window being maximized.  Code Snapshot  Playwright playwright = Playwright. create ()   ;   Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false));     // Create a new browser context   BrowserContext context = browser.newContext(new Browser.NewContextOptions()          .setViewportSize(1920, 1080));     ...