Skip to main content

Writing Your First Test in Playwright

 This is perfect for a tutorial script or blog post on Playwright + TypeScript basics.


1. Writing Your First Test in Playwright

Let’s start with a simple test to understand how Playwright works.

πŸ”Ή Step 1: Import Required Methods

First, we need to import the required methods (test and expect) from the Playwright testing library:


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

πŸ”Ή Step 2: Write Your First Test

The test method takes two parameters:

  • A title (string) that describes the test case

  • A callback function (arrow function) that contains the actual test code

Example:


test('First test case', () => { // Your test code goes here });

You can add as many test cases as you want in the same format:


test('Second test case', () => { // Code for second test }); test('Third test case', () => { // Code for third test });

2. Grouping Test Cases using test.describe

To group related test cases, use the test.describe method. This is useful for organizing your tests (e.g., login-related tests):


test.describe('Login Test Suite 1', () => { test('Login with valid credentials', () => { // Add test steps here }); test('Login with invalid credentials', () => { // Add test steps here }); test('Login without credentials', () => { // Add test steps here }); });

3. Using the page Fixture

To interact with a web page (like opening a URL, clicking buttons, etc.), we use the page fixture provided by Playwright.

Fixtures like browser, context, and page are built-in tools that help run your tests in a clean environment.

Example of a test with page fixture:



test('Login page test case', async ({ page }) => {
await page.goto('https://opensource-demo.orangehrmlive.com/web/index.php/auth/login'); });

⚠️ 4. Common Mistake: Handling Promises

In JavaScript/TypeScript, certain methods (like page.goto) return Promises.

A Promise represents an operation that hasn’t completed yet but is expected to in the future.
It can either:

  • Resolve successfully, or

  • Fail with an error

To handle Promises properly:

  • Use await before methods that return a Promise

  • Ensure the function is marked as async

Example:

test('Login page test case', async ({ page }) => {
await page.goto('https://opensource-demo.orangehrmlive.com/web/index.php/auth/login'); });

If you forget await or async, the test will throw an error or not behave as expected.


πŸ’‘

Run command :
npx playwright test firsttest.spec.ts --project=chromium --headed

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