Playwright 1.52: класні класи, розумні снепшоти та контроль над flaky
Вітаю. З вами Артур!
Сьогодні Playwright релізнув нову версію 1.52. Тож подивимось, що всередині.
Найголовніші апдейти
- Новий метод expect(locator).toContainClass() — шо удобно було перевірити наявність окремих класів у елемента.
<div class='middle selected row' id='component'></div> const locator = page.locator('#component'); await expect(locator).toContainClass('middle selected row'); await expect(locator).toContainClass('selected'); await expect(locator).toContainClass('row middle');
- Aria Snapshots отримали дві нові властивості: /children для жосткого порівняння вкладених елементів, /url для перевірки посилань.
приклад:
await expect(locator).toMatchAriaSnapshot(` - list - /children: equal - listitem: Feature A - listitem: - link "Feature B": - /url: "https://playwright.dev" `);
про снепшоти є класний відос у них тут:
https://www.youtube.com/watch?v=P4R6hnsE0UY&t=1s&ab_channel=Playwright
Test Runner
- Нова властивість
testProject.workers
дозволяє вказати кількість паралельних воркерів для проєкту. Загальне обмеженняtestConfig.workers
все ще діє. - Опція
testConfig.failOnFlakyTests
дозволяє завершити тестовий прогін з помилкою, якщо виявлено нестабільні (flaky) тести — аналогічно до--fail-on-flaky-tests
. Корисно для CI/CD, щоб впевнитися в стабільності тестів перед релізом.
import { defineConfig } from '@playwright/test'; export default defineConfig({ failOnFlakyTests: !!process.env.CI, });
- Нова властивість
testResult.annotations
містить анотації для кожного ретраю тесту.
Всяке різне
- Нова опція
maxRedirects
вapiRequest.newContext()
— обмеження максимальної кількості редиректів. - Нова опція
ref
вlocator.ariaSnapshot()
— дозволяє створити посилання на елемент у snapshot, яке згодом можна використати для пошуку цього елемента. - HTML-звіт тепер підтримує фільтрацію з виключенням(NOT) тегів, файлів і проєктів через
!@my-tag
,!my-file.spec.ts
або!p:my-project
.
Breaking Changes
- Зміни в шаблонах URL для методів, таких як
page.route()
:?
більше не підтримується як шаблон.- Діапазони/сети
[]
більше не підтримуються — переходьте на регулярні вирази.
- Метод
route.continue()
більше не дозволяє перевизначати заголовокCookie
. Якщо такий заголовок передано, він буде проігнорований. Куки будуть завантажені з cookie store браузера. Щоб задати свої куки, використовуйтеbrowserContext.addCookies()
. - macOS 13 більше не підтримується і не отримуватиме оновлень WebKit.
Browser Versions
- Chromium 136.0.7103.25
- Mozilla Firefox 137.0
- WebKit 18.4
P.S.
Всім гарного дня, стабільних тестів та буду радий бачити у своїй групі, щоб слідкувати за оновленнями світу тестування та розробки!
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів