Ответ вслух Senior Локаторы обновлено

Элемент без атрибутов

Вопрос

В легаси-приложении у элементов нет ни id, ни testid, разметка генерируется. Как вы будете писать надёжные локаторы?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Сначала ищу смысловые зацепки: подписи полей, заголовки секций, текст кнопок, ARIA-роли, если они есть. Локатор строю от стабильного контейнера: нахожу строку таблицы по тексту ячейки и уже в ней кнопку.

Что должно прозвучать в ответе

  • Искать смысловые якоря: подписи, заголовки, текст, роли

  • Строить локатор от стабильного контейнера к элементу (ancestor, filter)

  • Договориться о data-testid и добавлять их постепенно, начиная с критичных экранов

  • Собрать локаторы в одном месте, чтобы чинить быстро

  • Мониторить падения по локаторам и считать их стоимость, чтобы обосновать доработку

Что могут спросить следом

  • Как убедить команду добавлять testid?
  • Можно ли тестировать по скриншотам?

Разбор

Образцовый ответ: «Сначала ищу смысловые зацепки: подписи полей, заголовки секций, текст кнопок, ARIA-роли, если они есть. Локатор строю от стабильного контейнера: нахожу строку таблицы по тексту ячейки и уже в ней кнопку. Параллельно иду к фронтенду: добавление data-testid на критичные экраны стоит час работы, а экономит часы починки. Чтобы это продать, считаю, сколько падений за месяц было из-за локаторов. Все локаторы держу в Page Object, поэтому миграция на testid идёт без правки тестов»).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме