Key Changes
- Запись HAR в Tracing: Функции
tracing.startHar()иtracing.stopHar()теперь являются полноценными API для трассировки. Это позволяет записывать HAR-трафик в определенном скоупе с использованиемawait using, упрощая захват сетевого трафика во время тестов.await using har = await context.tracing.startHar('trace.har'); const page = await context.newPage(); await page.goto('https://playwright.dev'); // HAR is finalized when `har` goes out of scope. - API Drop: Новый метод
locator.drop()имитирует внешние действия drag-and-drop, поддерживая файлы или данные. Это ценно для тестирования зон загрузки файлов и интерактивных элементов, работая стабильно во всех браузерах.await page.locator('#dropzone').drop({ files: { name: 'note.txt', mimeType: 'text/plain', buffer: Buffer.from('hello') }, }); - Aria Snapshots:
expect(page).toMatchAriaSnapshot()теперь работает непосредственно с объектомPage. Новая опцияboxesдляariaSnapshot()добавляет координаты ограничивающего прямоугольника, что полезно для тестирования доступности с помощью ИИ. - Управление Тестами:
test.abort()позволяет немедленно прервать текущий тест из фикстуры, хука или обработчика маршрута с опциональным сообщением. Это полезно при обнаружении невосстановимой ошибки или некорректного использования.test('does not publish to the shared page', async ({ page }) => { await page.route('**/publish', route => { test.abort('Tests must not publish to the shared page. Use the `clone` option.'); return route.abort(); }); // ... }); - Новые API: Playwright v1.60.0 представляет несколько новых API для более тонкого контроля и улучшенной обработки событий. Событие
browser.on('context')позволяет отслеживать новые контексты браузера, в то время какBrowserContextтеперь зеркалирует события жизненного цикла страниц, такие какdownload,frameattached,pagecloseиpageload. Это упрощает управление событиями на нескольких страницах в рамках одного контекста. Для локаторов,getByRole()получает опциюdescription, что позволяет более точно тестировать доступность, сопоставляя доступное описание.expect(locator).toHaveCSS()теперь может проверять вычисляемые стили псевдоэлементов (::before,::after) с помощью опцииpseudo. Визуальная отладка улучшена благодаряlocator.highlight(), поддерживающему опциюstyleдля пользовательских наложений, иpage.hideHighlight()для их удаления. Управление сетью также улучшено с помощьюwebSocketRoute.protocols()для получения запрошенных субпротоколов WebSocket иbrowserType.connectOverCDP(), предлагающего опциюnoDefaultsдля отключения стандартных переопределений Playwright.
Impact for QA Teams
Эти обновления расширяют возможности автоматизации тестирования, особенно в части сетевого взаимодействия, сценариев drag-and-drop и тестирования доступности. QA-инженеры могут создавать более точные и надежные тесты, повышая стабильность и покрытие тестовых наборов. Для сравнения с другими инструментами, ознакомьтесь с нашей статьей Playwright vs Cypress.
