Introduction
When you work on a personal Playwright project, getting started may be as simple as running an install followed by the test command.
npm install
npx playwright testIn a large enterprise environment, however, you may immediately encounter errors such as SELF_SIGNED_CERT_IN_CHAIN, UNABLE_TO_VERIFY_LEAF_SIGNATURE, unable to get local issuer certificate, CERT_HAS_EXPIRED, or unable to verify the first certificate. Your browser may simply display “Your connection is not private”.
SELF_SIGNED_CERT_IN_CHAIN
UNABLE_TO_VERIFY_LEAF_SIGNATURE
unable to get local issuer certificate
CERT_HAS_EXPIRED
unable to verify the first certificateYou may also see files and configuration such as:
company-root-ca.pem
corporate-ca.crt
client-cert.pem
client-key.pem
automation.p12
automation.pfxNODE_EXTRA_CA_CERTS=/certs/company-ca.pemcafile=/certs/company-ca.pem
registry=https://company.jfrog.io/artifactory/api/npm/npm-virtual/At first all of this can look like one big certificate problem. It is much easier once you understand that several different systems are involved, and each layer may have its own trust requirements.
Developer Laptop
│
├── Node.js
├── npm
├── Playwright
└── Browser
│
▼
Corporate Network
│
┌──────┴──────┐
│ │
Proxy VPN
│
▼
Internal Systems
│
├── Application
├── APIs
├── JFrog
├── Git
├── Database
└── Cloud ServicesThis tutorial explains how certificates fit into that enterprise architecture.
What Is a Digital Certificate?
A digital certificate is an electronic credential used to prove the identity of a server, client, user, device, or service. A certificate normally contains a subject, an issuer, a public key, a serial number, validity dates, the domain or hostname it covers, a signature, and a set of extensions.
Certificate
Subject: qa.company.com
Issuer: Company Internal Certificate Authority
Valid: Jan 1, 2026 → Jan 1, 2027
Public Key: ...
Signature: ...When your browser connects to https://qa.company.com, the server presents its certificate and the client decides whether that certificate should be trusted.
Why Do Companies Need Certificates?
Certificates provide four security properties at once: identity, encryption, trust and integrity. Without TLS protection, anyone on the network could potentially intercept traffic between Playwright and the application under test.
Playwright
│
│ encrypted HTTPS
▼
API Server- Passwords and credentials stay protected in transit.
- Access tokens, cookies and session IDs cannot be read off the wire.
- Customer data and API payloads remain confidential.
- The client can verify it really is connected to api.company.com and not an impersonating server.
HTTP vs HTTPS, SSL vs TLS
Without TLS, traffic between client and server travels in plain text. With TLS, the same HTTP traffic is carried inside an encrypted connection — that is what the S in HTTPS means.
HTTP HTTPS
Client Client
│ │
│ plain text │ encrypted TLS
▼ ▼
Server ServerPeople still say “SSL certificate” even though modern HTTPS uses TLS. SSL 2.0 and 3.0 are obsolete; TLS 1.2 and TLS 1.3 are what you actually negotiate today. When an engineer says SSL certificate, they almost always mean a certificate used for TLS/HTTPS.
SSL → SSL 2.0 → SSL 3.0 → TLS 1.0 → TLS 1.1 → TLS 1.2 → TLS 1.3The Most Important Concept: Certificate Authority
A Certificate Authority (CA) is an organisation or internal service trusted to issue certificates. Your operating system already trusts a set of public CAs, which is why most internet sites simply work.
Trusted Root CA
│
▼
Intermediate CA
│
▼
Server Certificate
│
▼
api.company.comEnterprises usually also run their own internal Certificate Authority. A personal or freshly imaged machine may not automatically trust that company CA — and that is where most enterprise certificate problems begin.
Company Root CA
│
▼
Company Intermediate CA
│
▼
qa.internal.company.comWho Creates Enterprise Certificates?
Certificates are normally not created by Playwright developers. Depending on the organisation they are managed by the security team, PKI team, infrastructure or cloud platform team, DevOps, or a dedicated certificate management function.
PKI stands for Public Key Infrastructure. A PKI team typically manages root and intermediate CAs, certificate issuance, renewal and revocation, private keys, machine certificates and mTLS certificates.
Public CA vs Private Enterprise CA
For a public site such as https://www.example.com the certificate was issued by a CA your operating system already trusts, so usually nothing special is required.
For an internal host such as https://qa.internal.company.com the certificate may have been issued by the Company Root CA. Your browser or Node.js may not know that CA, and you will see “unable to get local issuer certificate”. The solution is to make the relevant system trust the company’s CA certificate — not to disable validation.
The Certificate Chain
Certificates are validated through a chain of trust.
Root CA → Company Root CA
│
▼
Intermediate CA → Company Application CA
│
▼
Server Cert → qa-api.company.comThe client verifies each link in turn:
Do I trust the Root CA?
↓
Did Root sign Intermediate?
↓
Did Intermediate sign the Server certificate?
↓
Does the certificate match qa-api.company.com?
↓
Is the certificate currently valid?
↓
Connection trustedIf part of this chain is missing you get UNABLE_TO_VERIFY_LEAF_SIGNATURE or unable to verify the first certificate.
Root, Intermediate and Server Certificates
A root certificate sits at the top of the trust hierarchy, for example CompanyRootCA.pem. Organisations rarely use the root private key directly; instead the root signs intermediate CAs, and those intermediates sign the day-to-day server certificates. That reduces risk, which is why certificate bundles usually contain both a root and one or more intermediates.
Company Root CA
│
├── Application CA
├── API CA
└── Infrastructure CAA server certificate proves the identity of a server. For normal HTTPS only the server authenticates itself: Playwright connects, the server presents qa.company.com.crt, and the client validates it.
Client Certificates and mTLS
Sometimes the server also wants the client to prove its identity. The client presents its own certificate — identifying an automation service, application, machine or environment — and that leads to mutual TLS.
Normal TLS mTLS
Client Client
│ │ client certificate
▼ ▼
Server proves identity Server
│ server certificate
▼
Client
Client verifies Server Both sides verify each othermTLS is common in banking, payments, healthcare, insurance, government, financial trading, internal microservices and B2B APIs. Instead of relying only on a username and password or a bearer token, the infrastructure additionally requires a trusted client certificate.
Playwright API Test
│
│ client certificate + private key
▼
API Gateway
│
▼
Authentication
│
▼
Backend ServiceEven if someone knows the API URL, the server rejects requests unless a trusted client certificate is presented.
Common Certificate File Types
When you join an enterprise Playwright project you will meet .pem, .crt, .cer, .key, .p12 and .pfx. They are related but not identical, and the extension alone does not always tell you the encoding or the content.
PEM (Privacy Enhanced Mail) is a text encoding. A PEM file can hold a single certificate, a full chain, a private key, or several of those together:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY------ .pem — certificate, key, or certificate chain in PEM text format.
- .crt — a certificate, usually PEM encoded, sometimes binary (for example company-root-ca.crt).
- .cer — another certificate extension, common on Windows, encoded as PEM or DER depending on export.
- .key — a private key, for example client.key. Extremely sensitive.
- .p12 / .pfx — PKCS#12 bundles containing the client certificate, its private key and the chain, often protected by a passphrase.
A PKCS#12 bundle is convenient: instead of shipping client.pem plus client.key you distribute a single client.p12 file.
Certificates Affect Different Parts of a Playwright Framework
This distinction is the single most useful thing in this tutorial. Certificate requirements can apply to the browser, Playwright’s APIRequestContext, Node.js itself, npm, JFrog Artifactory, Git, the corporate proxy, CI/CD, Docker and the internal APIs — and these systems do not necessarily share the same trust configuration.
Node.js Process
│
├── Playwright Test Runner
├── APIRequestContext
└── Browser Process
└── Chromium / Firefox / WebKitA certificate trusted by your operating system browser does not automatically fix every Node.js request. Making Node trust a CA does not automatically fix a browser context configuration problem either. Always ask: which component is actually failing?
ignoreHTTPSErrors: Use It Deliberately
If a test navigates to an internal host and the browser reports a certificate problem, first ask whether the certificate is expected to be trusted, or whether the environment intentionally uses a self-signed development certificate. That difference decides the fix.
await page.goto('https://qa.internal.company.com');use: {
ignoreHTTPSErrors: true
}Determine certificate requirement
↓
Identify issuing CA
↓
Install / configure trusted CA
↓
Use secure validationClient Certificates in Playwright
Modern Playwright supports TLS client certificate authentication for browser contexts and API requests. You configure either a cert plus key pair or a PFX/PKCS#12 bundle, and each entry is associated with an exact origin.
import fs from 'fs';
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
clientCertificates: [
{
origin: 'https://secure-api.company.com',
cert: fs.readFileSync('./certs/client.pem'),
key: fs.readFileSync('./certs/client-key.pem'),
},
],
},
});Playwright
│ client.pem + client-key.pem
▼
secure-api.company.com
│
▼
Server validates clientIf your company hands you a PKCS#12 bundle instead, configure the pfx and its passphrase:
import fs from 'fs';
use: {
clientCertificates: [
{
origin: 'https://secure.company.com',
pfx: fs.readFileSync('./certs/automation.p12'),
passphrase: process.env.CLIENT_CERT_PASSWORD,
},
],
}Enterprise Certificate Structure in the Repository
Keep a certs directory in the repository for documentation, but provision the actual private material externally.
project/
├── certs/
│ ├── README.md
│ └── .gitkeep
├── fixtures/
├── tests/
├── utils/
├── playwright.config.ts
└── .gitignorecerts/*.key
certs/*.p12
certs/*.pfxCI retrieves the real certificates from a secret manager rather than storing them in Git.
Corporate Proxy and HTTPS Inspection
Many large companies do not allow developer machines to reach the internet directly. Traffic goes through a corporate proxy so the organisation can enforce security policy, filtering, monitoring, access control, malware scanning and compliance.
Developer
│
▼
Corporate Proxy
│
▼
InternetTo inspect encrypted connections, an authorised enterprise proxy establishes separate TLS connections on each side. Your machine therefore sees a certificate issued by something like “Company Security CA” rather than the site’s original public chain. Unless your corporate CA is installed and configured, Node.js reports SELF_SIGNED_CERT_IN_CHAIN even though the proxy is working exactly as designed.
Why Does the Browser Work but npm Fails?
You open https://company.jfrog.io in Chrome and it works. You run npm install and get SELF_SIGNED_CERT_IN_CHAIN. The reason is simple: Chrome and Node.js/npm use different trust configuration. The browser trusts the corporate certificate through the operating system store; Node does not read that store the same way.
NODE_EXTRA_CA_CERTS
Node.js supports NODE_EXTRA_CA_CERTS to extend its trusted CA set with certificates from a PEM file. The value is read when the Node process starts.
# macOS / Linux
export NODE_EXTRA_CA_CERTS=/certs/company-ca.pem
npm install
npx playwright test# Windows PowerShell
$env:NODE_EXTRA_CA_CERTS="C:\certs\company-ca.pem"
npm installNode Built-in CAs
+
Company CA
↓
Trusted HTTPSSet it before the process launches rather than inside your code. Node documents that NODE_EXTRA_CA_CERTS is read at process start, so assigning process.env.NODE_EXTRA_CA_CERTS afterwards does not change the running instance’s CA configuration.
# do this
NODE_EXTRA_CA_CERTS=/certs/company-ca.pem npx playwright test// not this — too late, Node already started
process.env.NODE_EXTRA_CA_CERTS = './certs/company-ca.pem';npm Certificate Configuration and .npmrc
npm has its own certificate configuration. The cafile setting points to a file containing one or more trusted Certificate Authority certificates.
registry=https://company.jfrog.io/artifactory/api/npm/npm-virtual/
cafile=/Users/user/certs/company-ca.pem
strict-ssl=truenpm also supports registry-scoped authentication settings such as tokens, client certificate files and key files. On Windows the cafile path simply uses the Windows path form, for example C:\certs\company-ca.pem.
What Is JFrog Artifactory and Why Do Companies Use It?
JFrog Artifactory is an artifact repository manager — a controlled enterprise storage and distribution system for software packages and build artifacts. Instead of every developer downloading directly from the public npm registry, the organisation routes package management through Artifactory.
Without JFrog With JFrog
Developer Developer
│ │
▼ ▼
Public npm Registry JFrog Artifactory
├── Internal packages
├── Cached packages
└── Remote npm registryCompanies use Artifactory for security, centralised dependency management, access control, private packages, caching, availability, auditability, artifact governance and supply-chain control. Internal packages such as @company/test-utils, @company/api-client, @company/playwright-fixtures and @company/reporting live there rather than on the public registry.
Repository types
- Local repository (npm-local) — stores the company’s own packages, for example @company/playwright-framework.
- Remote repository (npm-remote) — proxies and caches an external registry such as registry.npmjs.org.
- Virtual repository (npm-virtual) — aggregates local and remote repositories behind one URL. JFrog recommends this as the default registry.
npm-virtual
├── npm-local
└── npm-remote → registry.npmjs.orgregistry=https://company.jfrog.io/artifactory/api/npm/npm-virtual/
always-auth=trueAuthentication is provided through npm login or a token in .npmrc. Note that JFrog is an artifact repository platform, not a certificate mechanism — but because npm reaches it over HTTPS through the corporate proxy, JFrog setup is where certificate problems usually surface first.
How to Diagnose Certificate Problems
You clone the automation repository, run npm install, and it fails with SELF_SIGNED_CERT_IN_CHAIN. It is tempting to think Playwright is broken — but Playwright has not even started. The failure happened during dependency installation, a completely different layer from page.goto() inside a test.
Where did the error happen?
↓
Installation? → npm / JFrog / Node CA trust
Browser navigation? → browser certificate trust
API request? → Playwright API / Node / server certificate
mTLS? → client certificate + private key
CI only? → CI machine or container trust storenpm install fails
.npmrc
↓
Registry URL
↓
JFrog
↓
Proxy
↓
CA trustCheck NODE_EXTRA_CA_CERTS and the npm cafile setting. Do not touch Playwright configuration — Playwright is not involved yet.
Browser navigation fails
Walk the chain from the browser to the server certificate to the intermediate to the corporate CA, then decide whether to install the correct CA or — only for a deliberately insecure non-production environment — set ignoreHTTPSErrors.
mTLS API fails
A request to a secured endpoint returns 403 or the TLS handshake fails outright. The API probably requires a client certificate and private key, matched to the exact origin.
clientCertificates: [
{
origin: 'https://secure-api.company.com',
certPath: './certs/client.pem',
keyPath: './certs/client.key',
},
]Environment-Specific Certificates and Secrets
An enterprise typically has separate DEV, QA, STAGE and PROD certificates. Rather than committing them per environment, resolve paths at runtime from environment variables.
CLIENT_CERT_PATH=/secure/client.pem
CLIENT_KEY_PATH=/secure/client.key
CLIENT_CERT_PASSWORD=*****clientCertificates: [
{
origin: process.env.SECURE_API_ORIGIN!,
certPath: process.env.CLIENT_CERT_PATH!,
keyPath: process.env.CLIENT_KEY_PATH!,
},
]This cleanly separates code from secrets.
Certificates in CI/CD and Docker
Your laptop may already trust the corporate CA, but a Jenkins agent, GitHub Actions runner or Docker container may not. That is why a suite passes locally and fails in the pipeline with a certificate error.
- Different operating system trust store on the agent.
- Certificate missing inside the container image.
- NODE_EXTRA_CA_CERTS not set in the job environment.
- Secret not injected, or client certificate / private key missing.
- Wrong file permissions on the key.
- Different JFrog configuration, or an expired certificate.
Secret Manager
│
▼
CI Job
├── Corporate CA
├── Client Certificate
└── Private Key
│
▼
Test Runtime
│
▼
PlaywrightThe certificates exist only for the duration of the job; once the workspace is destroyed they are gone. For containers, remember that your laptop trust store and the Docker trust store are two different things — the enterprise-approved CA must be installed or supplied inside the image.
Security: What Never Goes into Git
Never commit client.key, automation.p12 or automation.pfx. Anything containing a BEGIN PRIVATE KEY block is highly sensitive: do not email it casually, paste it in Slack, print it to the console, attach it to an Allure report, or write it into test logs.
- Store private keys in CI secrets, Vault, AWS Secrets Manager, Azure Key Vault, Kubernetes Secrets or an enterprise certificate service.
- A public .crt such as company-root-ca.crt is usually not secret, but company policy may still restrict where internal infrastructure material can be stored — follow your PKI/security policy.
- Certificate passphrases are secrets too: read them from process.env.CLIENT_CERT_PASSWORD, never from a literal in the config.
Certificate Expiration and Ownership
Certificates have validity periods. Once the end date passes you get CERT_HAS_EXPIRED and automation starts failing even though no Playwright code changed. That is why ownership and renewal processes matter.
Renewal usually belongs to the PKI, security, platform or DevOps team, or the application owner. The SDET’s job is to detect the issue, collect evidence, identify the certificate and the affected environment, and contact the certificate owner — not to create a random replacement certificate.
Common Certificate Errors and What They Mean
- SELF_SIGNED_CERT_IN_CHAIN — the chain contains a CA that Node/npm does not trust. Typical with a corporate proxy, internal CA or internal JFrog.
- UNABLE_TO_VERIFY_LEAF_SIGNATURE — usually a missing intermediate certificate or an incomplete chain.
- unable to get local issuer certificate — the client cannot find a trusted issuer for the presented certificate.
- CERT_HAS_EXPIRED — the validity period simply ended.
- Hostname mismatch — the certificate covers api.company.com but you connected to api-qa.company.internal.
What should an SDET check first?
- Where exactly is it failing?
- What URL is involved?
- Is this npm, the browser, an API call, JFrog or CI?
- Who issued the certificate?
- Is the certificate expired?
- Does the hostname match?
- Is the CA trusted by that component?
- Is an intermediate certificate missing?
- Is a corporate proxy involved?
- Is mTLS required?
Certificate Error
│
▼
Where?
┌────┬───────────┬───────────┐
npm Browser API CI
│ │ │ │
▼ ▼ ▼ ▼
JFrog TLS trust Server / mTLS Machine /
Node Client Cert Container
│ │ │ │
▼ ▼ ▼ ▼
CA CA / server cert + key CA / secretWhat NOT to Do
Avoid reaching for these as reflex fixes whenever an install or test hits a certificate problem:
npm config set strict-ssl false
NODE_TLS_REJECT_UNAUTHORIZED=0ignoreHTTPSErrors: trueAll three weaken certificate verification instead of solving the underlying trust issue. Use the systematic path instead: identify the failing component, inspect the server or registry, identify the certificate chain and issuing CA, verify trust, expiration, hostname and proxy, verify the client certificate if mTLS is in play, and fix the correct layer.
Certificates vs Tokens vs SSH Keys
Do not confuse a TLS certificate with an OAuth token, a JWT, an API key or a session cookie. They operate at different levels and a single request often needs both.
Playwright
│ TLS client certificate
▼
API Gateway
│ Bearer JWT
▼
ApplicationThe certificate answers “is this a trusted client or system?”. The token answers “which user or service is this, and what are they allowed to do?”. SSH keys (id_rsa, id_ed25519) used for Git authentication are different again — same public/private key mathematics, entirely different mechanism from HTTPS TLS certificates.
Joining an Enterprise Playwright Project
Search the repository for these terms to map the trust architecture quickly:
certificate cert ca pem crt pfx p12 key
NODE_EXTRA_CA_CERTS cafile strict-ssl proxy
clientCertificates ignoreHTTPSErrors
jfrog artifactory registry- Files worth inspecting: README.md, package.json, playwright.config.ts, .env.example, .npmrc, Dockerfile, Jenkinsfile, .github/workflows/, certificate config utilities and CI scripts.
- Questions to ask the team: Do we use an internal CA? Is a corporate proxy involved? Is JFrog our npm registry? Does npm require NODE_EXTRA_CA_CERTS? Does the application use mTLS, and which APIs require client certificates? Who owns certificate renewal? How are certificates injected in CI? Where are private keys stored? Do environments use different certificates?
Reference Structure and Certificate Configuration
enterprise-playwright/
├── tests/
│ ├── ui/
│ ├── api/
│ └── e2e/
├── fixtures/
├── pages/
├── services/
├── clients/
├── config/
│ └── certificate.config.ts
├── certs/
│ └── README.md
├── .npmrc
├── .gitignore
├── package.json
├── playwright.config.ts
└── README.mdimport fs from 'fs';
export function getClientCertificate() {
const certPath = process.env.CLIENT_CERT_PATH;
const keyPath = process.env.CLIENT_KEY_PATH;
if (!certPath || !keyPath) {
throw new Error('Client certificate configuration missing');
}
return {
cert: fs.readFileSync(certPath),
key: fs.readFileSync(keyPath),
};
}import { defineConfig } from '@playwright/test';
import { getClientCertificate } from './config/certificate.config';
const cert = getClientCertificate();
export default defineConfig({
use: {
clientCertificates: [
{
origin: process.env.API_ORIGIN!,
cert: cert.cert,
key: cert.key,
},
],
},
});Environment Variables
↓
Certificate Config
↓
Playwright Config
↓
Browser / API Context
↓
mTLS ServerEnterprise Certificate Checklist
GENERAL
☐ What system is failing?
☐ What URL is involved?
☐ Is HTTPS being used?
☐ Who issued the certificate?
☐ Is it expired?
☐ Does the hostname match?
☐ Is the chain complete?
CORPORATE NETWORK
☐ Is there a corporate proxy?
☐ Is HTTPS inspection enabled?
☐ Is the corporate Root CA installed?
NODE / NPM
☐ Is NODE_EXTRA_CA_CERTS required?
☐ Is .npmrc configured?
☐ Is cafile configured?
☐ Is strict-ssl still enabled?
JFROG
☐ Is JFrog the npm registry?
☐ Is the repository URL correct?
☐ Is authentication configured?
☐ Does Node trust the JFrog/proxy certificate?
PLAYWRIGHT
☐ Does the browser trust the application certificate?
☐ Does API testing require mTLS?
☐ Are clientCertificates configured?
☐ Is the origin correct?
CLIENT CERTIFICATES
☐ Certificate available?
☐ Private key available?
☐ Certificate expired?
☐ Correct environment?
☐ Passphrase available?
CI/CD
☐ Corporate CA available?
☐ Client certificate injected?
☐ Private key injected securely?
☐ Secret variables configured?
☐ Container trusts the CA?The Most Important Mental Model
When somebody says “Playwright has a certificate problem”, do not assume Playwright itself is at fault. Walk the whole chain and ask which connection is actually failing.
Developer → npm → Node.js → JFrog → Playwright → Browser
→ Corporate Proxy → Application → API Gateway → mTLS → BackendA complete enterprise run touches Git, npm and .npmrc, the corporate CA, JFrog Artifactory, dependency installation, Playwright startup, authentication, the browser and API clients, TLS or mTLS, the enterprise application, its microservices, the database or messaging layer, and finally validation. Understanding certificates means understanding where trust is required across that entire flow.
Final Takeaway
Enterprise Playwright automation is rarely just Playwright talking to a website. The real architecture runs from the developer or CI machine, through the corporate CA and JFrog, into Playwright’s browser and API clients, and out over TLS or mTLS to an API gateway and its microservices.
The concepts worth knowing cold are TLS/HTTPS, root and intermediate CAs, server and client certificates, private keys, mTLS, the PEM/CRT/CER and P12/PFX formats, corporate proxies, NODE_EXTRA_CA_CERTS, the npm cafile setting, JFrog Artifactory, and CI certificate management.
Once you internalise that principle, certificate errors stop looking like mysterious Playwright failures and become ordinary infrastructure problems you can diagnose systematically.
Complete professional Playwright + TypeScript framework covering UI, REST API, GraphQL, WebSocket, Kafka, Database, E2E and Agentic AI testing — with a complete AUT included.
Get Playwright tutorials in your inbox
Weekly tips, real-world examples, and framework patterns – no spam, unsubscribe anytime.
Playwright Framework Series
View all →- 1Getting Started with Playwright: Installation, Setup, and Your First Test
- 2Playwright Locators: The Complete Guide with Real-World Examples
- 3Playwright Actions: Complete Guide to Click, Fill, Hover, Keyboard, Mouse & File Upload
- 4Playwright Assertions: The Complete Guide with Real-World Examples
- 5Playwright Auto Waiting: The Complete Guide with Real-World Examples
- 6Playwright Fixtures: The Complete Guide with Real-World Examples
- 7Playwright Browser Context & Multiple Tabs: The Complete Guide with Real-World Examples
- 8Playwright Authentication & Session Management: Complete Guide with Enterprise Examples
- 9Playwright Network Interception & API Mocking: Complete Guide with Real-World Examples
- 10Playwright Page Object Model (POM): The Complete Guide with Enterprise Examples
- 11Page Object Model with Playwright: A Practical Guide
- 12How to Build a Robust Professional Playwright Framework from Scratch (Step-by-Step)
- 13Building an Enterprise Playwright Framework from Scratch
API Testing Series
View all →- 1Playwright API Testing: The Complete Guide with Real-World Examples
- 2Part 1 : Playwright API Testing Tutorial: Build Enterprise-Level API Automation Framework
- 3Part 2: Playwright API Testing Tutorial: Setting Up Project & Sending Your First API Request
- 4Part 3: Mastering CRUD Operations in Playwright API Testing
- 5Part 4: Authentication in Playwright API Testing (Bearer Token, JWT, API Key & Reusable Fixtures)
- 6Part 5: Building an Enterprise-Level Playwright API Automation Framework
- 7Part 6: API Models, Schema Validation & Test Data Management in Playwright
- 8Part 7: Custom Fixtures, Hooks, Logging & Parallel Execution in Playwright API Testing
- 9Part 8: Building a Production-Ready Playwright API Framework (Environment Management, CI/CD, Reporting & Best Practices)
- 10Part 9: Advanced Playwright API Testing Techniques for Enterprise Automation
- 11Part 10: Building a Complete Enterprise Playwright API Automation Framework (Final Part)
- 12API Testing with Playwright: Request Context, Auth, and Assertions
- 13Playwright Backend Testing Tutorial – REST API, GraphQL, WebSocket, Kafka, Database & Microservices