Предпочитают роли, доступные имена, test-id и стабильные атрибуты; избегают хрупких XPath по позиции и CSS, завязанных на структуру вёрстки.
Разбор
getByRole / accessibility tree ближе к тому, как пользователь видит UI.
data-testid — контракт между фронтом и тестами, если процесс это допускает.
- Текст кнопки ок, если он стабилен и локализован предсказуемо.
- Абсолютные XPath и nth-child — частый источник flaky после редизайна.
Итог
Локатор — контракт; чем он ближе к смыслу элемента, тем дешевле поддержка.