Playwright is a Node.js library developed by Microsoft and used for controlling web browsers to perform actions like generating screenshots and PDFs of pages, crawling a Single-Page Application (SPA), and automating form submission. It provides a high-level API to control headless (without a user interface) or non-headless browsers.
Playwright supports Chromium, Firefox, and WebKit with a single API, which makes it a powerful tool for cross-browser testing.
Here are some main features of Playwright:
Multiple Browser Support: Playwright supports all modern browsers including Chrome, Firefox, and Safari. This allows you to test your web application on all these browsers using a single tool.
Headless and Non-Headless Browsers: Playwright can work with both headless and non-headless browsers. This provides the flexibility to visualize the automation process or run it in the background.
Network Interception: Playwright allows you to intercept network activity, which can be used to mock network responses or to verify them.
Mobile Device Emulation: Playwright supports mobile device emulation which can be used to test your responsive designs.
Multi-page support: With Playwright, you can open multiple pages at once and control them independently.
Here's a basic example of using Playwright in JavaScript:
// Import the playwright package
const playwright = require('playwright');
(async () => {
// Launch a new browser
const browser = await playwright.chromium.launch();
// Create a new browser context
const context = await browser.newContext();
// Create a new page
const page = await context.newPage();
// Navigate to a URL
await page.goto('http://example.com');
// Take a screenshot
await page.screenshot({ path: 'example.png' });
// Close the browser
await browser.close();
})();