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