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

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

Наявність тексту не дорівнює видимості

Експеримент показує, що `to_have_text()` може успішно знайти текст у прихованому DOM-елементі. Отже, така перевірка не доводить, що користувач бачить проєкт після фільтрації. Для цього сценарію точніша перевірка — `to_be_visible()`. Висновок узагальнюється: assertion треба обирати за реальною вимогою. Якщо контракт про видимість — перевіряємо видимість; якщо про текстове значення незалежно від відображення — тоді `to_have_text()`.

1. Рефакторинг та оптимізація, KISS, DRY, DAMP, YAGNI →

Python мануфактура · Програма курсу · 44:40–48:35

Перевірка повідомлення про помилку

Для невалідних облікових даних тест очікує повідомлення `Invalid email or password`. Є два близькі підходи: ```python expect(page.get_by_text("Invalid email or password")).to_be_visible() expect(page.locator("#content-desktop .common-flash-info")).to_have_text( "Invalid email or password" ) ``` У першому випадку елемент знаходиться за текстом і перевіряється його видимість. У другому — спочатку знаходиться стабільний контейнер, а потім перевіряється його текст. Обидва варіанти потребують правильної області пошуку через дубльовану розмітку.

3. Селектори та пошук елементів →

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

Змінні, intention actions і Extract Method

Окремий postfix template експериментально перетворює вираз на присвоєння змінній. Він корисний лише тоді, коли справді економить дії; якщо шаблон незручно визначає позицію курсора або працює не для всіх виразів, його краще спростити чи не використовувати. `⌥Enter` відкриває intention actions для поточного контексту. У меню можна рухатися клавішами й вибирати, наприклад, перейменування елемента. Перейменування через IDE змінює всі пов’язані входження, тому безпечніше за ручний пошук і заміну. `Refactor → Extract Method` (`⌘⌥M` у показаному keymap) переносить виділений фрагмент у новий метод. PyCharm визначає потрібні аргументи й можливі значення, що повертаються. У прикладі перевірки кнопки винесено в `check_manage_button`, після чого до викликів усередині методу додано `self`. Це спосіб прибрати дублювання на рівні поведінки, не переписуючи код вручну. Практичне зауваження з демонстрації: `to_have_text()` не варто вважати повною заміною перевірки видимості. Якщо видимість є окремою вимогою сценарію, її треба перевіряти явно.

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