Для поиска элементов в тестах расставляются атрибуты data-testid.
Такое имя атрибута не случайное, data-testid используют react-modal и testing-library.
Рекомендуется использовать описанный ниже формат локатора. Можно использовать любой другой. Главное, чтобы атрибуты были уникальные и не менялись после добавления.
В предлагаемом формате значение локатора должно соответствовать схеме ${Контекст}:${тип}:${опциональная уточняющая информация через точку}.
Примеры:
MainPage:button:createNewModelConsequenceForm:field:descriptionShowBarrierModal:modalBarrierForm:button:responsibles.addBarrierForm:field:cost.unit
Варианты типов:
buttonfieldmodaltagtextdropdownlinkblock(используется, если не подошёл один из вариантов выше)- Другие типы тоже можно использовать
Если надо отобразить обращение к массиву или к ключу объекта, то необходимо использовать квадратные скобки. Примеры:
Scheme:button:addBarrier.proactiveBarriers[1]ConsequenceForm:field:riskConsumers[0].amountConsequenceForm:field:damageType[REPUTATION]
По возможности надо избегать использования id элементов для data-testid, так как они могут инкрементироваться и не сохраняться от одного прогона тестов к другому. Вместо id можно использовать index или order.