Skip to main content

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 script npm run test Defined in package.json

4. Basic package.json Scripts for Playwright

{
  "scripts": {
    "test": "npx playwright test",
    "test:headed": "npx playwright test --headed",
    "test:debug": "npx playwright test --debug",
    "test:report": "npx playwright show-report",
    "test:project": "npx playwright test --project=chromium",
    "test:file": "npx playwright test tests/example.spec.ts",
    "test:grep": "npx playwright test -g 'login test'",
    "build": "tsc"
  }
}

๐Ÿ” Explanation of Scripts

Script What It Does
test Runs all tests (default from config)
test:headed Opens browser with GUI
test:debug Debug mode (step-through with pw.debug() and trace viewer)
test:report Opens HTML test report
test:project Runs tests only on specified browser
test:file Runs a specific test file
test:grep Runs tests with title matching string
build Compiles TypeScript to JavaScript (if using manually)

6. ๐Ÿ”ง playwright.config.js — Explained

1. Basic Structure

// playwright.config.js
const { defineConfig } = require('@playwright/test');

module.exports = defineConfig({
  testDir: './tests',
  timeout: 30000,
  expect: {
    timeout: 5000,
  },
  fullyParallel: true,
  reporter: 'html',
  use: {
    browserName: 'chromium',
    headless: true,
    viewport: { width: 1280, height: 720 },
    screenshot: 'only-on-failure',
    video: 'retain-on-failure',
    trace: 'on-first-retry',
  },
});

2. Common Configuration Options

Option Description
testDir Folder where all tests are located
timeout Maximum time each test can run
use.browserName Choose browser: 'chromium', 'firefox', 'webkit'
headless true runs browser without UI
reporter 'list', 'dot', 'html', 'json' etc.
trace 'on', 'off', 'on-first-retry' helps debug tests
screenshot 'on', 'off', 'only-on-failure'
video 'on', 'off', 'retain-on-failure'

3. Custom Projects

You can define multiple browsers to test across:

projects: [
  { name: 'Chromium', use: { browserName: 'chromium' } },
  { name: 'Firefox', use: { browserName: 'firefox' } },
  { name: 'WebKit', use: { browserName: 'webkit' } }
]

Run all with:

npx playwright test

Comments

Popular posts from this blog

Understand browser, context, and page in Playwright

๐ŸŽฅ Playwright: Browser, Context & Page - Real-time Demo and Multi-User Testing  . ๐ŸŽฏ Goal: Understand browser , context , and page in Playwright ๐Ÿง  1. What is a browser ? ✅ Definition: A browser in Playwright is a launched instance of a real browser (Chromium, Firefox, WebKit) that can be used for automated testing. ✅ Purpose: It starts and controls the browser process. It is the root of your test execution. Required to create contexts and pages . ✅ Code Example: ts Copy Edit import { chromium } from 'playwright' ; const browser = await chromium. launch ({ headless : false }); ๐Ÿง  2. What is a context (browser context)? ✅ Definition: A context is like a separate browser profile (or incognito tab) inside the browser. Each context is isolated — no cookies, local storage, or sessions are shared. ✅ Purpose: Simulates multiple users or sessions. Enables parallel and isolated testing. Allows setting user-specific prefer...

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));     ...

Playwright Locators in JavaScript (Complete Guide)

๐ŸŽฏ Playwright Locators in JavaScript (Complete Guide) This guide explains each Playwright locator with: ✅ What it is ๐Ÿ• When to use ⚙️ How to use it ๐ŸŽฏ Benefits ๐Ÿงช Code Examples ๐Ÿ”น 1. Locator by ID ✅ What: Selects an element with a unique id . ๐Ÿ• When: Element has a unique id . ⚙️ How: page.locator('#username') ๐ŸŽฏ Benefit: Fast and reliable. <input id="username" /> await page.locator('#username').fill('John'); ๐Ÿ”น 2. Locator by Class ✅ What: Selects by class . ๐Ÿ• When: Repeated or styled elements. ⚙️ How: page.locator('.password') ๐ŸŽฏ Benefit: Useful for shared styling. <input class="password" /> await page.locator('.password').fill('12345'); ๐Ÿ”น 3. Locator by Text ✅ What: Matches visible element text. ๐Ÿ• When: For buttons, links, etc. ⚙️ How: page.getByText('Login') ๐ŸŽฏ Benefit: Human-readable. <button>Login...