наши тестировщики делают такое:
страница делится на секции, навигация, aside, основное содержимое
у нас семантичная верстка, хоть и не максимально.
он говорит When clicked button with text "Sign up" in "navigation" in "profile"
а степ сходит и найдет навигацию, затем найдет блок профиля, будет искать блок с таким лейблом, или же блок с aria, и уж потом найдет кнопку с таким текстом.
Если на кнопке нет текста, но есть иконка, то мы прописываем в aria иконке описание, а тестировщики его угадывают, ибо скринридеры читают название, и оно должно быть вменяемым. И выбирают по нему, обычно иконка имеет имя:
When clicked button with icon "download" in "table" in item 3
Таким образом у нас нет testid вообще. Но при этом мы думаем о семантичности верстки, добавляем лейблы блокам, и получаем удобный для тестирования, понятный пользователю интерфейс, ещё и доступный пользователям с ограниченными возможностями.
По сути, такой интерфейс не сложно реализовать. Нужно почитать документацию по доступности интерфейсов и написать крайне короткий гайд, мол такие проперти юзайте там и там. А тестировщики пытаются написать на него тесты, и если не получается кидают нам репорт, мол тут не сделали