Comments 4
Статья - огонь! Всё по делу.
У себя на проекте АТ применяю аналогичные практики, с LLM хотел сделать что-то аналогичное, но не доходили руки. Пожалуй, переиспользую твою реализацию на досуге! =)
На скринах не увидел, как твой декоратор позволяет "логировать аргументы" в отчёте
> Адаптация декоратора позволила не только оборачивать методы, но и передавать читабельное описание, а также логировать аргументы.
Было бы супер увидеть, как это выглядит
Полезная статья, спасибо!
В качестве альтернативы декоратору порекламирую своё решение, где шаги генерируются из комментариев в коде:
test('Check home page', async ({ page }) => {
// step: Open home page
await page.goto('https://playwright.dev');
// step: Click "Get started" link
await page.getByRole('link', { name: 'Get started' }).click();
// step: Check page title
await expect(page).toHaveTitle('Installation | Playwright');
});
Отчет:

Тоже использую подобный декоратор для step и я в нем ещё реализовал генерацию описания, на основании названия класса + названия методов + параметров, а так же можно прописать название и вручную. В отчете выглядит примерно так:
Some page › some action: param-value
Но это подходит в случае, если тест отчетность нужна на английском.
___
Кстати, ещё можно отметить, что в 1.53.0 версии плейрайта добавили фичу, помогающей присвоить описание локаторов. Можно почитать об этом в релизнотах
Теперь и действия с локаторами по типу click, fill, clear и тд, будут иметь описание по дефолту.

Конечно, locator.desctibe пока что работает не очень хорошо, описание теряется, при вызове элемента по индексу, использованию locator.all(), first(), last() и в общем любой функции возвращающей локатор, но есть способы обойти это ограничение и получить улучшенную тест отчетность без дополнительных step
Как сделать отчёты Playwright понятными, а падения — полезными