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

Терміни, нюанси та джерела

Що змінилося після запису · 1:30

Що змінилося після запису

Урок показує macOS-specific workaround, щоб не розпакувати внутрішній Playwright trace archive.

Playwright офіційно документує цілий trace.zip як input для playwright show-trace, але не документує поведінку macOS Archive Utility. macOS workaround залишається авторським evidence, а не універсальним platform rule.

Офіційний contract перевірено 2026-07-31; дата macOS behavior не встановлена.

3. Фікс трейсів на СІ →

Нюанс · 1:23

Shortcuts залежать від keymap

Комбінації клавіш у відео показані на macOS і частково налаштовані автором. Знаходьте дію за назвою в меню або Settings → Keymap і перевіряйте локальну комбінацію та конфлікти.

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

Python мануфактура · Програма курсу · 1:30–4:10

Вкладені ZIP і macOS Archive Utility

Artifact може бути ZIP-архівом, усередині якого лежать окремі `trace.zip`. Archive Utility на macOS рекурсивно розпаковує вкладені архіви й змінює очікувану структуру, після чого Trace Viewer не розпізнає результат як trace. Надійніший шлях — розпакувати зовнішній artifact консольною командою `unzip` у визначену директорію та передати Trace Viewer внутрішній `trace.zip` без повторного пакування. Пробіли в шляху треба екранувати або передавати шлях одним quoted argument.

3. Фікс трейсів на СІ →

Python мануфактура · Програма курсу · 0:00–1:50

Встановлення інструментів через пакетні менеджери

Автор радить не завантажувати Python та інші інструменти вручну з випадкових сторінок завантаження. На macOS для цього використовується Homebrew, а на Windows — Chocolatey або Windows Package Manager. Такий підхід спрощує подальші оновлення та контроль встановлених версій. Для macOS базова команда має вигляд: ```bash brew install python ``` Після виконання команди потрібно перевірити, що встановилась стабільна версія Python і що саме цей інтерпретатор використовуватиметься у проєкті.

1. Налаштування PyCharm, JetBrains Toolbox, створення проєкту та структура проектів →

Python мануфактура · Сесії: AMA та PMP · 6:10–8:35

Papuga: виправлення неправильної розкладки

Papuga вирішує локальну проблему кількох keyboard layouts: користувач набрав фразу не тією мовою, виділяє її та shortcut-ом перетворює на правильну розкладку. У відео це позиціонується як безкоштовний macOS-аналог Punto Switcher із ручним запуском конвертації. Ручна дія є свідомою межею показаної версії: автоматична заміна ще не готова. Такий режим зменшує ризик, що застосунок самовільно змінить коректний текст.

Корисні застосунки та їхнє призначення →

Python мануфактура · Сесії: AMA та PMP · 0:00–3:05

Diduny: диктування без meeting bot

Diduny виник як спосіб продиктувати prompt або повідомлення й одразу вставити розпізнаний текст у поточне поле. На відміну від багатьох meeting services, для запису зустрічі не потрібно долучати окремого bot-учасника. Це прибирає конфлікти кількох bots і незручність для інших учасників. Окрема проблема — multilingual meetings, де розмова перемикається між українською, англійською, польською чи німецькою. Звичайні transcription services часто помиляються, якщо очікують одну мову на весь запис. У відео Diduny показано як macOS app із shortcuts для dictation, перекладу виділеного тексту та запису зустрічей.

Корисні застосунки та їхнє призначення →

Python мануфактура · Програма курсу · 0:00–2:43

Віртуальне середовище й залежності

PyCharm зазвичай створює для нового Python-проєкту окреме віртуальне середовище `.venv`. Воно ізолює версію Python і бібліотеки конкретного проєкту від інших проєктів на комп’ютері. У вбудованому терміналі активне середовище позначається префіксом на кшталт `(.venv)`. Термінал можна відкрити через меню дій або гарячою клавішею (`Option+F12` на macOS чи `Alt+F12` у відповідній розкладці на Windows). Для інтеграції Playwright із pytest встановлюється пакет: ```bash pip install pytest-playwright ``` Плагін надає готові pytest-фікстури, зокрема `page`, і бере на себе створення браузера, контексту та сторінки для тесту.

2. Перший автотест на Python з Playwright →

Python мануфактура · Програма курсу · 1:23–5:15

Безпечний рефакторинг і навігація

На прикладі повторюваних рядків показано `Refactor → Introduce Variable`: PyCharm створює змінну з виділеного виразу й може замінити всі його входження. У демонстрації на macOS використовується `⌘⌥V`; на Windows або Linux слід дивитися актуальне скорочення безпосередньо в меню IDE. Так само винесено повторювані значення `classical` і `BDD` у зрозуміло названі змінні. IDE підсвічує невикористаний код сірим, тому зайві параметри й імпорти можна швидко знаходити та видаляти. Окрема команда оптимізує імпорти після змін. Для навігації показано: - `⌘B` — перейти до оголошення або реалізації символу під курсором; - `⌘⌥←` і `⌘⌥→` — повернутися до попереднього місця редагування або перейти вперед; - перехід на початок чи кінець рядка замість ручного руху курсора. Головна звичка: спочатку шукати дію в контекстному меню й дивитися її назву та скорочення, а вже потім за потреби змінювати keymap.

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

Python мануфактура · Програма курсу · 6:00–7:22

Relative й absolute paths

Relative path залежить від current working directory, з якого запущено процес; absolute path починається від filesystem root або drive. Hardcoded local paths роблять тести непереносними між macOS, Linux, Windows і CI. Краще будувати шлях від стабільної project directory через `Path`.

7 робота з файлами →

Python мануфактура · Програма курсу · 7:07–13:05

Власні postfix templates для Playwright

`Postfix Completion` налаштовується через Settings (`⌘,` на macOS). Postfix template застосовується до виразу ліворуч від крапки. Спеціальна змінна `$EXPR$` означає цей вираз, а `$END$` визначає, де залишиться курсор після розгортання. Створено кілька Python-шаблонів: - `"selector".locator` перетворює селектор на `page.locator("selector")`; - вираз із postfix `expect` обгортається в `expect(...)`; - скорочений варіант на кшталт `expvis` одразу створює `expect(...).to_be_visible()`. Під час першого налаштування `locator` вираз помилково був додатково взятий у лапки, через що PyCharm формував неправильний код. Після виправлення `$EXPR$` підставляється як готовий вираз. Це важливе правило: шаблон має додавати лише відсутню структуру, а не повторно форматувати вже валідний фрагмент. Такий ланцюжок скорочує типовий шлях до перевірки: знайти селектор, вставити його як рядок, застосувати `.locator`, а потім `.expvis`. Результат детермінований і не потребує повторної перевірки припущень генеративної моделі.

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