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.
Всім гарного дня, стабільних тестів та буду радий бачити у своїй групі, щоб слідкувати за оновленнями світу тестування та розробки!

Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів