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

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

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

Чому Playwright радить `getByRole`

`getByRole` спирається на роль і accessible name з accessibility tree. Інші user-facing locators — `getByLabel`, `getByText`, `getByPlaceholder`, `getByAltText` і `getByTitle` — шукають за відповідним видимим або описовим значенням. Усі вони читаються ближче до наміру користувача й роблять failure зрозумілішим для розробників — основної аудиторії результатів автотестів. Незначна різниця в швидкості locator неважлива порівняно з network та application latency.

Пріоритети селекторів та їхня надійність →

Python мануфактура · Програма курсу · 10:03–12:20

Контрольовані `data-testid` та інші атрибути

Найстабільніший для команди варіант — атрибут, значення якого тестувальники та розробники свідомо контролюють, наприклад `data-testid`. Його можна додати у frontend-компонент і зберігати як частину контракту тестованості. Так само можуть використовуватися стабільні `id`, `name`, `aria-label` чи інші атрибути. Головний критерій автора — не назва механізму сама по собі, а можливість команди контролювати його та домовитися, коли він змінюється.

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

Python мануфактура · Програма курсу · 23:35–26:30

Accessibility tree та role-локатори

Accessibility tree показує інтерфейс так, як його сприймають assistive technologies: ролі `link`, `button`, `textbox`, `searchbox`, `list` та їхні доступні імена. У DevTools потрібно ввімкнути повне accessibility tree й перезавантажити сторінку. Playwright підтримує локатори на основі цієї семантики, наприклад `get_by_role`. Вони часто добре читаються та водночас перевіряють, що елемент має зрозумілу роль. Але на проєкті все одно потрібна єдина домовленість про основну стратегію та допустимі винятки.

3. Селектори та пошук елементів →
Запитати в чаті про «aria» →