Проверяет знание нестандартных ситуаций и интересных случаев при работе с Playwright, включая обработку всплывающих окон, iframe, сетевых запросов и параллельного выполнения.
При работе с Playwright разработчики часто сталкиваются с типовыми сценариями, но есть и менее очевидные случаи, которые могут вызвать трудности. Понимание этих ситуаций помогает писать более надёжные и гибкие тесты.
Когда приложение открывает новое окно или вкладку, Playwright позволяет перехватить это событие через page.on('popup'). Это полезно для тестирования OAuth-логинов или внешних ссылок.
const [popup] = await Promise.all([
page.waitForEvent('popup'),
page.click('a[target="_blank"]')
]);
await popup.waitForLoadState();
console.log(await popup.title());Элементы внутри iframe недоступны напрямую через основной селектор. Используйте frameLocator для взаимодействия с содержимым фрейма.
const frame = page.frameLocator('#my-iframe');
await frame.locator('input[name="email"]').fill('test@example.com');Playwright позволяет модифицировать или блокировать сетевые запросы через page.route. Это полезно для тестирования офлайн-режима или подмены API-ответов.
await page.route('**/api/data', route => {
route.fulfill({ json: { data: 'mock' } });
});Для ускорения тестов Playwright поддерживает параллельный запуск. Однако нужно быть осторожным с общими ресурсами, такими как файлы или базы данных. Используйте изоляцию контекстов через browser.newContext().
const context = await browser.newContext();
const page = await context.newPage();Знание этих нестандартных случаев позволяет эффективно решать реальные задачи автоматизации, делая тесты более устойчивыми и покрывающими сложные сценарии взаимодействия пользователя с веб-приложением.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию