Ukraine Office: +38 (063) 50 74 707

USA Office: +1 (212) 203-8264

contact@testmatick.com

Manual Testing

Ensure the highest quality for your software with our manual testing services.

Mobile Testing

Optimize your mobile apps for flawless performance across all devices and platforms with our comprehensive mobile testing services.

Automated Testing

Enhance your software development with our automated testing services, designed to boost efficiency.

Functional Testing

Refine your application’s core functionality with our functional testing services

VIEW ALL SERVICES 

Discussion – 

0

Discussion – 

0

Специфика работы с веб-элементами при автоматизации тестов

Специфика работы с веб-элементами при автоматизации тестов

Большинство тестировщиков-автоматизаторов много времени проводят в поисках необходимой составляющей веб-страницы, будь то кнопка «Поиск», группа полей ввода информации либо же какие-то определенные графические блоки. Процесс поиска может стать весьма сложным заданием, особенно при ситуации, когда веб-объект не имеет оригинального ID-идентификатора или класса.

Ниже предоставлено краткое, но в тоже время исчерпывающее руководство того, как быстро находить веб-элементы на странице при выполнении автоматизированного тестирования ПО.

Веб-элементы и др.

Веб-элементы и др.

Понятие «веб-элемент»

Итак, веб-элемент – это оригинальный объект внутри конструкции веб-страницы, который генерируется во front-end, когда пользователь, к примеру, открывает страницу сайта.

В конструкциях HTML все элементы определяются через тэги, классы, атрибуты или содержание. Они могут обладать дочерними элементами, к примеру, таблицами. Используя CSS, сущность и внешнее отображение элементов можно редактировать, скрывать или создавать.

Касательно современных языков программирования, то они взаимодействуют с веб-элементами посредством объектной модели документа (DOM).

Что такое локаторы веб-элементов

Стоит всегда помнить, что [highlight dark=”no”]веб-элементы и локаторы – это совершенно разные вещи[/highlight]. Локатор веб-элемента – это специальный объект, способный обнаруживать элементы по определенному запросу. Другими словами, [highlight dark=”no”]с помощью локаторов можно найти любой интересующий веб-элемент[/highlight].

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

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

Как выполнять поиск элементов?

Если на проекте используются классические локаторы для создания группы тест-автоматизации, то элементы будут находиться с большим трудом. Дабы максимально упростить работу, рекомендуется использовать DevTools любимого веб-браузера (Chrome или Mozilla Firefox) и понравившуюся интегрированную среду разработки.

Далее рассмотрим примеры тестов на основе использования Google Chrome

Исследование страницы в браузере выполняется после предварительного нажатия правой кнопкой мыши на необходимый веб-элемент (или клавишей F12).

Поиск веб-элементов в Google Chrome

Поиск веб-элементов в Google Chrome

Чтобы отметить нужный элемент, переходим во вкладку Elements. Затем нажимаем на иконку мыши (технически, это вкладка «Select») и перемещаем курсор мыши на необходимый визуально видимый элемент. После того как вы нажмете на него, во вкладке Elements подсветится выбранный элемент.

И все, теперь спокойно можно исследовать необходимый класс, тэг или атрибут (родительские и дочерние элементы).

Рецепт качественных локаторов

Обнаружить элемент – это всего лишь половина работы, если речь идет об автоматизации тестирования. Разработка оригинального запроса для локатора – вещь не менее важная, и в тоже время крайне сложная. Если значение локатора достаточно обширное, он будет выдавать ложноположительные параметры.

В данном случае хорошей практикой будет создавать обычный стандартный запрос, который может качественно идентифицировать базовый элемент или группу элементов.

Можно отталкиваться от следующего ранжирования видов запросов по мере их убывания:

  • Идентификатор;
  • Название;
  • Название класса;
  • CSS-селектор;
  • Xpath без тела текста;
  • Текст URL;
  • Xpath с текстом.

Оригинальные идентификаторы и названия классов позволяют упростить разработку локаторов: все последующие запросы будут краткими, и не будет необходимости во вспомогательных «якорях».

В данном контексте, всегда стоит просить программистов создавать исключительно оригинальные ID для всех веб-элементов. Но бывают ситуации, когда уже после стадии сдачи ПО на тесты, элементы не обладают уникальными ID, и локаторы вынуждены полагаться на сложные CSS-селекторы и Xpath.

Если подобная вещь произошла на вашем проекте, следует воспользоваться следующими рекомендациями:

  1. Использовать родительские веб-элементы в качестве якорей, если те обладают оригинальными ID;
  2. Избегать Xpath, содержащих текст;
  3. Применять параметры «contains», инспектируя классы в Xpath.

Всегда проверяйте локаторы, поскольку там могут быть явные синтаксические ошибки и ложноположительные параметры. Применительно к функционалу браузера Google Chrome, тестирование локаторов сводится к простому нажатию сочетания клавиш Ctrl+F на вкладке элементов. DevTools сразу же покажет все необходимые элементы в порядке очереди.

Бывают ситуации, когда локатор в тесте попросту не срабатывает. Тогда можно предпринять такие действия:

  • Запустить тест без отладки с личной интегрированной средой разработки;
  • Установить на локаторе контрольную точку;
  • Ожидаем, пока тесты прекратятся;
  • Переходим в DevTools в активном веб-окне Chrome;
  • Проверяем объектную модель документа и выполняем тест локатора на странице.

Как быть в ситуациях, когда тесты нестабильны?

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

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

Наиболее эффективный способ избежать подобных условий – постоянно ждать существования элемента, прежде чем вступать с ним во взаимодействие. Хоть и звучит просто, но некоторые тестировщики часто об этом забывают.

Параметры Selenium WebDriver состоят из множества объектов, например, WebDriverWait, с помощью которого можно запрограммировать драйвер, ждать корректности определенного уровня перед следующими условиями.

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

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

You May Also Like

Почему валидация данных так важна?

Почему валидация данных так важна?

Полное отсутствие валидации может спровоцировать возникновение некоторых проблем, представленных в данной статье. А значит, только наличие валидации даст возможность предотвратить критические сбои, которые крайне нежелательны при использовании любого программного обеспечения.

Обзор программного обеспечения медицинского оборудования и алгоритм его тестирования

Обзор программного обеспечения медицинского оборудования и алгоритм его тестирования

Медицинское приложение — программное обеспечение, разработанное для использования в области медицины, применяемое как персоналом лечебных заведений (например, докторами, реже — младшими медицинскими работниками), так и пациентами. При тестировании медицинского программного обеспечения алгоритм работы существенно не отличается от работы в других областях. Он лишь имеет рад особенностей с использованием способа интерактивной методологии.