
एक ही API के साथ Chromium, Firefox और WebKit के लिए ब्राउज़र स्वचालन फ्रेमवर्क। वेब परीक्षण, स्क्रैपिंग, स्क्रीनशॉट और नेटवर्क इंटरसेप्शन का समर्थन करता है।
Playwright वेब स्वचालन और परीक्षण के लिए एक फ्रेमवर्क है। यह एक ही API के साथ Chromium, Firefox और WebKit को चलाता है — आपके परीक्षणों में, आपकी स्क्रिप्ट्स में, और AI एजेंटों के लिए एक उपकरण के रूप में।
अपने वर्कफ़्लो के अनुरूप मार्ग चुनें:
| सबसे उपयुक्त | इंस्टॉल करें | |
|---|---|---|
| Playwright Test | एंड-टू-एंड परीक्षण | npm init playwright@latest |
| Playwright CLI | कोडिंग एजेंट (Claude Code, Copilot) | npm i -g @playwright/cli@latest |
| Playwright MCP | AI एजेंट और LLM-संचालित स्वचालन | npx @playwright/mcp@latest |
| Playwright Library | ब्राउज़र स्वचालन स्क्रिप्ट्स | npm i playwright |
| VS Code एक्सटेंशन | VS Code में परीक्षण लेखन और डिबगिंग | मार्केटप्लेस से इंस्टॉल करें |
Playwright Test एंड-टू-एंड परीक्षण के लिए निर्मित एक पूर्ण-विशेषताओं वाला परीक्षण रनर है। यह पूर्ण ब्राउज़र अलगाव, स्वचालित प्रतीक्षा और वेब-प्रथम अभिकथन के साथ Chromium, Firefox और WebKit पर परीक्षण चलाता है।
npm init playwright@latest
या मैन्युअल रूप से जोड़ें:
npm i -D @playwright/test
npx playwright install
import { test, expect } from '@playwright/test';
test('has title', async ({ page }) => {
await page.goto('https://playwright.dev/');
await expect(page).toHaveTitle(/Playwright/);
});
test('get started link', async ({ page }) => {
await page.goto('https://playwright.dev/');
await page.getByRole('link', { name: 'Get started' }).click();
await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
});
npx playwright test
परीक्षण सभी कॉन्फ़िगर किए गए ब्राउज़रों पर समानांतर रूप से चलते हैं, डिफ़ॉल्ट रूप से हेडलेस मोड में। प्रत्येक परीक्षण को एक नया ब्राउज़र संदर्भ मिलता है — लगभग शून्य ओवरहेड के साथ पूर्ण अलगाव।
स्वचालित प्रतीक्षा और वेब-प्रथम अभिकथन। कोई कृत्रिम टाइमआउट नहीं। Playwright तत्वों के कार्यशील होने की प्रतीक्षा करता है, और अभिकथन स्वचालित रूप से तब तक पुनः प्रयास करते हैं जब तक शर्तें पूरी नहीं हो जातीं।
लोकेटर। लचीले लोकेटर के साथ तत्व खोजें जो दर्शाते हैं कि उपयोगकर्ता पृष्ठ को कैसे देखते हैं:
page.getByRole('button', { name: 'Submit' })
page.getByLabel('Email')
page.getByPlaceholder('Search...')
page.getByTestId('login-form')
परीक्षण अलगाव। प्रत्येक परीक्षण अपने स्वयं के ब्राउज़र संदर्भ में चलता है — एक नए ब्राउज़र प्रोफ़ाइल के समतुल्य। प्रमाणीकरण स्थिति को एक बार सहेजें और इसे अन्य परीक्षणों में पुनः उपयोग करें:
// लॉगिन के बाद स्थिति सहेजें
await page.context().storageState({ path: 'auth.json' });
// अन्य परीक्षणों में पुनः उपयोग करें
test.use({ storageState: 'auth.json' });
ट्रेसिंग। विफलता पर निष्पादन ट्रेस, स्क्रीनशॉट और वीडियो कैप्चर करें। Trace Viewer में प्रत्येक क्रिया, DOM स्नैपशॉट, नेटवर्क अनुरोध और कंसोल संदेश का निरीक्षण करें:
// playwright.config.ts
export default defineConfig({
use: {
trace: 'on-first-retry',
},
});
npx playwright show-trace trace.zip
समानांतरता। परीक्षण डिफ़ॉल्ट रूप से सभी कॉन्फ़िगर किए गए ब्राउज़रों पर समानांतर रूप से चलते हैं।
Playwright CLI कोडिंग एजेंटों के लिए डिज़ाइन किया गया ब्राउज़र स्वचालन के लिए एक कमांड-लाइन इंटरफ़ेस है। यह MCP से अधिक टोकन-कुशल है — कमांड मॉडल संदर्भ में बड़े टूल स्कीमा और एक्सेसिबिलिटी ट्री लोड करने से बचते हैं।
npm install -g @playwright/cli@latest
वैकल्पिक रूप से समृद्ध एजेंट एकीकरण के लिए स्किल्स इंस्टॉल करें:
playwright-cli install --skills
अपने कोडिंग एजेंट को किसी कार्य पर इंगित करें:
Test the "add todo" flow on https://demo.playwright.dev/todomvc using playwright-cli.
Take screenshots for all successful and failing scenarios.
या सीधे कमांड चलाएँ:
playwright-cli open https://demo.playwright.dev/todomvc/ --headed
playwright-cli type "Buy groceries"
playwright-cli press Enter
playwright-cli screenshot
सभी चल रहे ब्राउज़र सत्रों के लाइव स्क्रीनकास्ट पूर्वावलोकन के साथ एक विज़ुअल डैशबोर्ड खोलने के लिए playwright-cli show का उपयोग करें। ज़ूम इन करने और रिमोट कंट्रोल लेने के लिए किसी भी सत्र पर क्लिक करें।
playwright-cli show
Playwright MCP सर्वर Model Context Protocol के माध्यम से AI एजेंटों को पूर्ण ब्राउज़र नियंत्रण देता है। एजेंट संरचित एक्सेसिबिलिटी स्नैपशॉट का उपयोग करके पृष्ठों के साथ इंटरैक्ट करते हैं — कोई विज़न मॉडल या स्क्रीनशॉट आवश्यक नहीं।
अपने MCP क्लाइंट (VS Code, Cursor, Claude Desktop, Windsurf, आदि) में जोड़ें:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
VS Code के लिए वन-क्लिक इंस्टॉल:
Claude Code के लिए:
claude mcp add playwright npx @playwright/mcp@latest
अपने AI सहायक से किसी भी वेब पृष्ठ के साथ इंटरैक्ट करने के लिए कहें:
Navigate to https://demo.playwright.dev/todomvc and add a few todo items.
एजेंट पृष्ठ को एक संरचित एक्सेसिबिलिटी ट्री के रूप में देखता है:
- heading "todos" [level=1]
- textbox "What needs to be done?" [ref=e5]
- listitem:
- checkbox "Toggle Todo" [ref=e10]
- text: "Buy groceries"
यह क्लिक करने, टाइप करने और इंटरैक्ट करने के लिए e5 और e10 जैसे तत्व संदर्भों का उपयोग करता है — निर्धारित रूप से और दृश्य अस्पष्टता के बिना। टूल्स नेविगेशन, फ़ॉर्म भरना, स्क्रीनशॉट, नेटवर्क मॉकिंग, स्टोरेज प्रबंधन और बहुत कुछ कवर करते हैं।
ब्राउज़र स्वचालन स्क्रिप्ट्स के लिए playwright को एक लाइब्रेरी के रूप में उपयोग करें — वेब स्क्रैपिंग, PDF जनरेशन, स्क्रीनशॉट कैप्चर, और कोई भी वर्कफ़्लो जिसे परीक्षण रनर के बिना प्रोग्रामेटिक ब्राउज़र नियंत्रण की आवश्यकता होती है।
npm i playwright
स्क्रीनशॉट लें:
import { chromium } from 'playwright';
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://playwright.dev/');
await page.screenshot({ path: 'screenshot.png' });
await browser.close();
PDF जनरेट करें:
import { chromium } from 'playwright';
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://playwright.dev/');
await page.pdf({ path: 'page.pdf', format: 'A4' });
await browser.close();
मोबाइल डिवाइस का अनुकरण करें:
import { chromium, devices } from 'playwright';
const browser = await chromium.launch();
const context = await browser.newContext(devices['iPhone 15']);
const page = await context.newPage();
await page.goto('https://playwright.dev/');
await page.screenshot({ path: 'mobile.png' });
await browser.close();
नेटवर्क अनुरोधों को इंटरसेप्ट करें:
import { chromium } from 'playwright';
const browser = await chromium.launch();
const page = await browser.newPage();
await page.route('**/*.{png,jpg,jpeg}', route => route.abort());
await page.goto('https://playwright.dev/');
await browser.close();
Playwright VS Code एक्सटेंशन परीक्षण चलाने, डिबगिंग और कोड जनरेशन को सीधे आपके एडिटर में लाता है।
परीक्षण चलाएँ और डिबग करें एक क्लिक के साथ एडिटर से। ब्रेकपॉइंट सेट करें, वेरिएबल्स का निरीक्षण करें, और लाइव ब्राउज़र दृश्य के साथ परीक्षण निष्पादन में कदम दर कदम आगे बढ़ें।
CodeGen के साथ परीक्षण जनरेट करें। ब्राउज़र खोलने के लिए "Record new" पर क्लिक करें — अपने ऐप में नेविगेट करें और इंटरैक्ट करें जबकि Playwright आपके लिए परीक्षण कोड लिखता है।
लोकेटर चुनें। सर्वोत्तम उपलब्ध लोकेटर देखने के लिए ब्राउज़र में किसी भी तत्व पर होवर करें, फिर इसे अपने क्लिपबोर्ड पर कॉपी करने के लिए क्लिक करें।
Trace Viewer एकीकरण। प्रत्येक परीक्षण चलाने के बाद पूर्ण निष्पादन ट्रेस प्राप्त करने के लिए साइडबार में "Show Trace Viewer" सक्षम करें — प्रत्येक चरण पर DOM स्नैपशॉट, नेटवर्क अनुरोध, कंसोल लॉग और स्क्रीनशॉट।
| Linux | macOS | Windows | |
|---|---|---|---|
| Chromium1 154.0.8037.0 | ✅ | ✅ | ✅ |
| WebKit 26.6 | ✅ | ✅ | ✅ |
| Firefox 155.0 | ✅ | ✅ | ✅ |
सभी प्लेटफ़ॉर्म पर हेडलेस और हेडेड निष्पादन। 1 डिफ़ॉल्ट रूप से Chrome for Testing का उपयोग करता है।