1. What is Playwright?
Answer:
Playwright is an open-source automation framework developed by Microsoft for web testing and scraping. It supports multiple browsers (Chromium, Firefox, and WebKit) and provides powerful features like auto-waiting, screenshots, and tracing.
2. How do you install Playwright?
Answer:
You can install Playwright using npm or yarn:
npm install @playwright/test
# or
yarn add @playwright/test
Then, install the necessary browser binaries:
npx playwright install
3. How do you launch a browser and open a page in Playwright?
Answer:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await browser.close();
})();
4. How do you interact with a button using Playwright?
Answer:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.click('#submitButton');
await browser.close();
})();
5. How do you handle alerts and dialogs in Playwright?
Answer:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
page.on('dialog', async dialog => {
console.log(dialog.message());
await dialog.accept();
});
await page.goto('https://example.com');
await page.click('#alertButton');
await browser.close();
})();
6. How do you take a screenshot in Playwright?
Answer:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'screenshot.png' });
await browser.close();
})();
7. How do you select an option from a dropdown in Playwright?
Answer:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.selectOption('#dropdown', 'option2');
await browser.close();
})();
8. How do you handle file uploads in Playwright?
Answer:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.setInputFiles('#file-upload', 'path/to/file.txt');
await browser.close();
})();
9. How do you wait for an element to be visible in Playwright?
Answer:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.waitForSelector('#visible-element', { state: 'visible' });
await browser.close();
})();
10. How do you run Playwright tests in different browsers?
Answer:
const { chromium, firefox, webkit } = require('playwright');
(async () => {
for (const browserType of [chromium, firefox, webkit]) {
const browser = await browserType.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
// Perform actions
await browser.close();
}
})();