Getting Started with Playwright: A Beginner's Guide

Vishal KhairnarVishal Khairnar
4 min read

Introduction

Web automation is a crucial part of modern software testing. Playwright, an open-source framework by Microsoft, enables fast, reliable, and cross-browser automation for modern web applications. In this guide, we’ll explore Playwright’s features, architecture, installation, test execution methods, automatic code generation, and comparisons with other tools like Selenium and Cypress.


What is Playwright?

Playwright is a powerful automation framework for web testing that supports multiple browsers, including Chromium, Firefox, and WebKit. It allows parallel test execution, mobile emulation, and API testing, making it a preferred choice for developers and testers.

Key Features of Playwright:

  • Supports multiple browsers (Chromium, Firefox, WebKit)

  • Works with JavaScript, TypeScript, Python, Java, and C#

  • Provides headless and headed mode execution

  • Allows mobile emulation

  • Supports network interception and visual testing

  • Enables parallel execution for faster testing


Playwright Architecture

Playwright operates using a WebSocket connection to communicate with browsers instead of HTTP, enabling faster execution and better reliability.

WebSocket vs HTTP Connection:

FeatureWebSocketHTTP
Connection TypePersistentRequest-Response
SpeedFasterSlower
Use CaseContinuous communicationOne-time requests
ExamplePlaywright, WebSockets APISelenium, REST APIs

Since Playwright uses WebSockets, it avoids the latency issues seen in HTTP-based automation frameworks like Selenium.


Playwright vs Selenium vs Cypress

FeaturePlaywrightSeleniumCypress
Multi-Browser Support✅ Yes✅ Yes❌ Only Chromium-based
Headless Mode✅ Yes✅ Yes✅ Yes
Parallel Execution✅ Yes❌ No (without Grid)✅ Yes
Mobile Emulation✅ Yes❌ No❌ No
Performance🔥 Fast🐢 Slow🚀 Fast
  • Selenium: Best for legacy systems but slower than Playwright.

  • Cypress: Best for front-end testing but limited to Chromium-based browsers.

  • Playwright: Best for modern web testing with full cross-browser support.


Why Use TypeScript with Playwright?

Using TypeScript enhances Playwright testing by adding static typing, better code maintainability, and IDE auto-completion.

Benefits of TypeScript in Playwright:

Type safety to reduce runtime errors
Better autocompletion & intellisense
Easier debugging & refactoring

You can still use JavaScript, Python, Java, or C#, but TypeScript is highly recommended for large test suites.


Playwright Installation & Project Setup

Step 1: Install Playwright

npm init playwright@latest

Follow the setup instructions and choose JavaScript/TypeScript.

Step 2: Open the Playwright Test Project

cd my-playwright-project

Step 3: Run a Sample Test

npx playwright test

This runs the default test cases Playwright provides.


Writing Your First Playwright Test

Create a test file example.spec.ts inside the tests/ folder:

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

test('Check Google title', async ({ page }) => {
  await page.goto('https://google.com');
  await expect(page).toHaveTitle(/Google/);
});

Run the test with:

npx playwright test example.spec.ts

Different Ways to Execute Tests in Playwright

  • Run all tests: npx playwright test

  • Run specific test: npx playwright test example.spec.ts

  • Headed mode: npx playwright test --headed

  • Headless mode: npx playwright test --headless

  • Specific browser: npx playwright test --browser=firefox

  • Parallel execution: npx playwright test --workers=4

  • Debugging mode: npx playwright test --debug

  • Capture screenshots: npx playwright test --screenshot=on

  • Record video: npx playwright test --video=on

  • Run tests with tracing: npx playwright test --trace=on

For more execution methods, check this detailed guide.


Automatic Code Generation in Playwright (CodeGen)

Playwright CodeGen records user interactions and converts them into test scripts automatically.

Launching CodeGen

npx playwright codegen example.com

CodeGen Options:

  • Specific browser: npx playwright codegen --browser=firefox example.com

  • Headed mode: npx playwright codegen --headed example.com

  • Mobile emulation: npx playwright codegen --device="iPhone 13" example.com

  • Save script to file: npx playwright codegen --output=mytest.spec.ts

  • Use authentication storage: npx playwright codegen --load-storage=auth.json example.com

For a complete list of CodeGen options, check this detailed guide.


Playwright Test vs Jest & Mocha

Playwright comes with a built-in test runner, but how does it compare to Jest and Mocha?

FeaturePlaywright TestJestMocha
Built-in Test Runner✅ Yes❌ No❌ No
Parallel Execution✅ Yes✅ Yes❌ No
Browser Automation✅ Yes❌ No❌ No
API Testing✅ Yes✅ Yes✅ Yes

Playwright Test is best for end-to-end testing, whereas Jest/Mocha are better for unit testing.


Conclusion

Playwright is a game-changer for web automation with its cross-browser support, fast execution, and rich debugging features. Whether you're a beginner or an experienced tester, Playwright can help streamline your testing process.

🚀 Ready to automate your tests? Start using Playwright today!

0
Subscribe to my newsletter

Read articles from Vishal Khairnar directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Vishal Khairnar
Vishal Khairnar