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

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

Практика · 25:45

Обрати API для autocomplete

Знайдіть поле, де suggestion list з’являється після окремих keyboard events.
Порівняйте fill() і press_sequentially() на тому самому observable result.
Залиште повільніший API лише якщо test доводить потребу в keyboard events.
Два test runs і висновок, який event contract потребує application.

Як Playwright взаємодіє з браузером через протокол →

Що змінилося після запису · 25:45

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

У відео під час пошуку потрібного API згадуються type і посимвольне введення.

Поточна Python-документація позначає locator.type() як deprecated. Для більшості полів рекомендовано fill(), а для окремих keyboard events — press_sequentially(), доданий у v1.38.

Playwright v1.38 introduced locator.press_sequentially; the current documentation deprecates locator.type.

Як Playwright взаємодіє з браузером через протокол →

Java · Сесії: AMA та PMP · 6:10–8:35

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

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

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

Java · Основний курс · 1:30:38–1:35:21

Межі низькорівневого API й options окремих дій

Playwright має API для keyboard shortcuts через `page.keyboard().press(...)`, WebSocket events і mocking. Водночас автору бракує ланцюжків на кшталт «динамічно дочекайся тексту, а потім клікни цей самий елемент», тому у власній бібліотеці він додає коротші chainable operations. Окремі actions та assertions приймають options objects. Для конкретної перевірки можна змінити timeout; `FillOptions` і подібні об'єкти дозволяють задати власний timeout або `force`. `force` обходить частину actionability checks і потрібен лише як виняток для проблемного frontend, а не як стандартний спосіб виправляти тести.

Playwright для Java: основи та поглиблення →

Java · Сесії: AMA та PMP · 8:35–11:15

Browser Kitty: правильний link у правильному профілі

Коли одночасно використовуються персональні, робочі й client accounts, відкриття link у default browser може змішати sessions або показати не той account під час screen sharing. Автор розділяє контексти через різні browser profiles і навіть різні browsers. Browser Kitty перехоплює відкриття URL та дозволяє keyboard shortcut-ом вибрати потрібний browser, profile, desktop app або incognito mode. Практичний результат — менше ручних переходів і нижчий ризик випадково відкрити приватний або робочий ресурс у неправильному контексті.

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

Java · Сесії: AMA та PMP · 25:45–30:00

`fill()` проти посимвольного введення

[Дивитися з 25:45](https://www.youtube.com/watch?v=6QdvE9DHOIY&t=1545s). `fill()` фокусує поле, замінює значення та генерує input-related event. Це рекомендований і швидкий варіант для звичайних text fields. Посимвольне `pressSequentially()` потрібне лише тоді, коли application реагує на окремі `keydown`/`keypress`/`input`/`keyup`: autocomplete після перших символів, input mask, formatter номера телефону або custom keyboard handler. Практичний сценарій для autocomplete: ввести мінімальну кількість символів, дочекатися suggestion list, вибрати потрібний option і перевірити кінцевий state. Посимвольне введення не повинно ставати глобальним workaround для слабких очікувань, бо воно робить suite повільнішим.

Як Playwright взаємодіє з браузером через протокол →
Запитати в чаті про «keyboard» →