Python мануфактураJavaDesign Patterns для автоматизаторів

Python мануфактура · Програма курсу · 32:20–38:42

Live templates для методів і повторюваних блоків

На відміну від postfix template, `Live Template` розгортається в місці курсора з короткої абревіатури. У Settings створюється окрема група шаблонів для проєкту або Playwright, а контекст обмежується Python-файлами. Це не дає шаблону випадково з’являтися в нерелевантних типах файлів. У шаблоні методу використовуються змінні для назви функції, аргументів або локатора та `$END$` для фінальної позиції курсора. Після розгортання `Tab` переходить між редагованими полями. Якщо автоматичне перетворення назви в `snake_case` не працює передбачувано, простіше залишити явне введення назви, ніж ускладнювати шаблон. На основі реального сценарію створено заготовку методу, який приймає дані, знаходить елемент через `self.page.locator(...)`, виконує дію й повертає `self`. Потім метод перейменовується рефакторингом IDE, щоб назва оновилась і в оголошенні, і у виклику.

Майструємо IDE під себе →

Python мануфактура · Програма курсу · 38:42–47:55

Набір коротких Playwright-шаблонів

Для частих операцій створюються малі шаблони, кожен з яких прибирає конкретний повторюваний фрагмент: - `page.pause()` для зупинки тесту й дослідження стану; - заготовка методу Page Object із параметром і локатором; - `self.page.get_by_role(...)` з курсором на ролі та подальших аргументах; - виклик потрібного локатора з `.click()`; - очікування `expect(button).to_be_hidden()` після відправлення форми. Шаблон `get_by_role` дає виграш не кількістю згенерованого коду, а тим, що не треба щоразу набирати `self.page`, назву методу й дужки. Після розгортання залишається вибрати роль, наприклад `button`, і вказати доступне ім’я. Також показано запуск поточного тесту зі скорочення та переміщення цілого statement вгору або вниз (`⌘⇧↑` / `⌘⇧↓` у демонстрації). Якщо комбінації в локальному keymap інші, дію слід знайти за назвами `Move Statement Up` і `Move Statement Down`. Після кліку тест очікує зникнення кнопки. Це робить перехід до наступної сторінки явним: подальші дії починаються лише після підтвердженої зміни стану.

Майструємо IDE під себе →

Python мануфактура · Програма курсу · 54:13–58:29

Завершення тесту й різниця між шаблонами

Після успішного запуску тест перейменовується відповідно до перевірюваної поведінки. Для ще одного повторюваного фрагмента створюється простий live template, який розгортається в `return self`. Це підтримує ланцюжкові виклики Page Object без повторного ручного набору. Плагіни не є основою цього процесу. У викладача встановлений Junie, але частіше для окремих задач використовується Claude Code. Головний приріст швидкості в уроці дають штатні засоби PyCharm: пошук у Settings, keymap, рефакторинги та шаблони. Параметри сторонніх плагінів варто змінювати лише під реальну потребу. Підсумкова модель трьох механізмів: - **postfix template** застосовується після виразу через крапку та обгортає або перетворює цей вираз; - **live template** розгортає за абревіатурою блок коду в позиції курсора; - **file template** створює новий файл із готовою структурою. На практиці postfix зручний для `locator` або `expect`, live template — для `page.pause()`, `get_by_role()` і повторюваних методів, а file template — для Page Object. Ці механізми доповнюють один одного й не потребують зовнішнього генератора.

Майструємо IDE під себе →
Запитати в чаті про «live-template» →