Как стать автором
Поиск
Написать публикацию
Обновить

Как составить устойчивые локаторы практически для любого сайта

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.3K
Всего голосов 6: ↑6 и ↓0+8
Комментарии9

Комментарии 9

спасибо за статью!
самый устойчивый локатор - data-testid
его добавляют разработчики для тестовых целей. он может быть добавлен по просьбе разработчиков автоматического тестирования
в остальных случаях, нет никаких устойчивых локаторов. фронт-энд разработчики изменять код и не спросят авто-тестировщиков. тесты попадали - проблема тестировщиков, а не фронт-энда
исходя из собственного опыта, могу сказать - все решает взаимодействие разработчик-тестировщик. если этого нет - головная боль, нервы, обиды

Спасибо за комментарий.

В моем случае нужно было написать автотесты для сторонних сайтов: Telegram, VK, Yandex Messenger, Whatsapp. Поэтому сделать data-testid не было возможности. Статья написана, чтобы ее можно было использовать для большинства сайтов, где также нет data-testid.

Но я согласна, что без data-testid локаторы могут поменяться в любой момент. Тут вопрос в том, насколько устойчивыми, хорошими их можно написать.

не рассчитывайте на поиск локаторов по тексту - UI/UX очень часто и легко меняет текст элементов. Например:
определили локатор "//*[text()='Очистить историю']"
через неделю, дизайнеры UI/UX решили, что текст должен быть 'очистить историю'
и тест упал из-за одной буквы


Спасибо за комментарий.

В статье я хотела отразить в частности простые наиболее часто используемые варианты задания локаторов. Без примера с текстом набор был бы необоснованно урезанным.

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

В моем случае нужно было написать автотесты для сторонних сайтов: Telegram, VK, Yandex Messenger, Whatsapp

Добрый день! Для стартовой статьи начинающего АТ, почитавшего пару статей и CheatList по xpath, и попрактиковавшегося на паре сайтов очень даже хорошо.

Как составить устойчивые локаторы практически для любого сайта

По заголовку же - очевидно мимо. Да, примеры есть, но действительно:

самый устойчивый локатор - data-testid

И да, понимаю, что на всяких курсах и в ряде команд, а то и компаний, css локаторы почему то даже не пытаются рассматривать, почему - "у нас так принято" обычно самый вменяемый ответ.

Под статью с таким заголовков все же и их следует рассмотреть.

Приведенные в данной статье в качестве примеров локаторы являются наиболее часто встречающимися. Но это далеко не все возможности Xpath

Так это к счастью и не наиболее часто встречающиеся. Все тестирование зависит от контекста продукта, подходов команды, ее обученности и навыков. И даже (что страшно для многих) нет ничего предосудительно в одном Page использовать и xpath и css.

Учитесь, развивайтесь, пробуйте разные технологии, продукты и подходы)

Ждем с новыми статьями.

Спасибо за комментарий.

Статья написана для составления не просто устойчивых локаторов, когда есть data-testid, а практически для любого сайта. Для самых устойчивых локаторов data-testid реализация очевидна, но для большинства сайтов таких локаторов нет, по крайней мере сейчас, поэтому описываются локаторы для того, что есть.

У каждого свой опыт. В статье я описала наиболее часто встречающиеся локаторы из моей практики более 10 лет в веб-тестировании на различных проектах.

для большинства сайтов таких локаторов нет, по крайней мере сейчас

Их и не будет, катить их в ПРОД такая себе практика - хотя тот же Mail это себе позволяет.

У каждого свой опыт. В статье я описала наиболее часто встречающиеся локаторы из моей практики более 10 лет в веб-тестировании на различных проектах.

Само собой, что у каждого опыт свой и за год, и за 10 или 20 лет. Чьи то 3 года и 2 проекта порой гораздо ценнее, чем 10 лет и 5-7 проектов.

Все же в таком случае опять же предлагаю не быть однобоким и в контексте локаторов давать примеры как для xpath, так и для css. Во многих примерах, как и на многих популярных сайтах, они прямо таки так и напрашиваются.

Вопрос надежности всегда зависит от конкретного контекста, но все же простота, скорость написания и поддержки так же важны и их следует учитывать)

Вот кстати интересная тема для следующей статьи - рассмотреть аналогичные типовые примеры и элементы и сделать варианты xpath и css с оценкой сложности, читаемости и надежности (в общем плане). Оценивать по скорости, контексту приложения и надежности (тут сильно влияет аспект изменяемости структуры DOM, классов, текстовок и тп в процессе работы над продуктом).

"//h3[text()='*** QA Group']/../../../.."

Жестко завязан на структуру, поэтому более хрупок, чем:

//a[descendant::h3[text()=‘*** QA Group’]]

Можно почитать подробнее про XPath Axes

Спасибо за ценный комментарий.

Статья изначально называлась "Простой способ составить устойчивые локаторы практически для любого сайта", поэтому в ней были приведены самые простые и часто используемые локаторы. Перед публикацией мня убедили поменять название на более короткое - "Как составить устойчивые локаторы практически для любого сайта".

Зарегистрируйтесь на Хабре, чтобы оставить комментарий