1.0.24 • Published 2 months ago

pwf-ck v1.0.24

Weekly downloads
-
License
ISC
Repository
-
Last release
2 months ago

██████╗░██╗░░░░░░█████╗░██╗░░░██╗░██╗░░░░░░░██╗██████╗░██╗░██████╗░██╗░░██╗████████╗░░░░░░████████╗░██████╗ ██╔══██╗██║░░░░░██╔══██╗╚██╗░██╔╝░██║░░██╗░░██║██╔══██╗██║██╔════╝░██║░░██║╚══██╔══╝░░░░░░╚══██╔══╝██╔════╝ ██████╔╝██║░░░░░███████║░╚████╔╝░░╚██╗████╗██╔╝██████╔╝██║██║░░██╗░███████║░░░██║░░░█████╗░░░██║░░░╚█████╗░ ██╔═══╝░██║░░░░░██╔══██║░░╚██╔╝░░░░████╔═████║░██╔══██╗██║██║░░╚██╗██╔══██║░░░██║░░░╚════╝░░░██║░░░░╚═══██╗ ██║░░░░░███████╗██║░░██║░░░██║░░░░░╚██╔╝░╚██╔╝░██║░░██║██║╚██████╔╝██║░░██║░░░██║░░░░░░░░░░░░██║░░░██████╔╝ ╚═╝░░░░░╚══════╝╚═╝░░╚═╝░░░╚═╝░░░░░░╚═╝░░░╚═╝░░╚═╝░░╚═╝╚═╝░╚═════╝░╚═╝░░╚═╝░░░╚═╝░░░░░░░░░░░░╚═╝░░░╚═════╝░

Playwright-ts

playwright-ts is a playwright framework based on Playwright and Typescript. This provides a boilerplate with wrappers and utility functions to create automated testing suite more efficiently and quickly.

usage

Installation

  • Install Playwright
  • Install playwright-ts from NPM package manager npm install playwright-ts

Please note:- playwright-ts requires ECMAScript module support, so please ensure your projects support ES modules by setting "type"="module" in your package.json files.

Environment Configuration Support

  • playwright-ts is shipped with a CLI tool that can be used to update default playwright config file and enable environment configuration support.
  • Once playwright-ts package is installed, run npx playwright-ts with -c or --configgento generate the config files.

    npx playwright-ts -c

  • This enables the use of dotenv in the project and generates .env file in root directory of project to configure environment variables for local execution. Simply add the name and value of variable to the file using the already provided syntax.

    Pro tip: Always add .env to .gitignore file as this file can potentially have "SENSITIVE" data. Also, the values from file are always read as strings, so expect discrepancy when using boolean values :smiley: .

  • Generates a environments.config.ts file that holds value of configuration properties for different environments. All you have to do is modify this as per your needs and use the appropriate value for environment variable TEST_ENV in your pipeline or alternaitvely from .env file.

  • Updates playwright.config.ts file to merge the playwright's default configuration and configuration in environments.config.ts. Also, enables dotenv support.

To read any config value in your test. Import the merged config and use as shown below.

import config from "../playwright.config";
await page.goto(config.baseUrl!);

NPM Packages

UseScript
PNPM Packagenpm i -g pnpmFor efficient package manager
add tsconfigpnpm tsc --init
tsuppnpm add tsup -Dbundle library
noUncheckedIndexedAccessnoEmit - truchange in tsconfig
package.jsontsup framework --format cjs, esm --dts
to buildpnpm run build
Changesetpnpm add -D @changesets/cli

ref: https://www.youtube.com/watch?v=eh89VE3Mk5g

Playwright Guide

Installation

UseScript
Installationnpm init playwright@latest
Runs the end-to-end testsnpx playwright test
Starts the interactive UI mode.npx playwright test --ui
trace onnpx playwright test --trace on
Runs the tests only on Desktop Chrome.npx playwright test --project=chromium
Runs the tests in a specific file.npx playwright test example
Runs the tests in debug mode.npx playwright test --debug
Auto generate tests with Codegennpx playwright codegen
Show Reportnpx playwright show-report
Open Playwright Inspectornpx playwright open
Generate Allure reportingnpx allure generate ./allure-results --clean
Open Allure reportnpx allure open ./allure-report/
To Run tests in localTEST_ENV=local npx playwright test
To Run a specfic testnpx playwright test -g "test name"

Running tests using env variable : https://medium.com/@irfan17sat/configuring-multiple-environments-in-playwright-67e402c1c627

Automation Testing Principles : https://testingconsultancy-my.sharepoint.com/:w:/g/personal/aadhith_bose_ttcglobal_com/EW6TZYI_XhVLu2b1MFb-Mk4BInbKTyKlBwifFnGdh-RmPQ?e=sNZvUW

Page Objects

NameDescription
By Tag Namepage.locator('input')
By IDpage.locator('#id')
By Class Valuepage.locator('.class value')
By Attributepage.locator('[placeholder="Email"]')
By Full Class Valuepage.locator('[class="full static shape rectangle"]')
Combinepage.locator('#id').locator(.class)
Combinepage.locator('#id').getByRole('button, {name:"Sign in"}')
By Xpathpage.locator('//xpath')
By Partial textpage.locator(':text("Email")')
By Exact textpage.locator(':text-is("Email here")')
1.0.24

2 months ago

1.0.23

2 months ago

1.0.22

2 months ago

1.0.21

2 months ago

1.0.20

2 months ago

1.0.19

2 months ago

1.0.18

2 months ago