
4_2
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
Кафедра 41
ПРЕПОДАВАТЕЛЬ
Доцент, канд. техн. наук |
|
|
|
Е. Л. Турнецкая |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
Лабораторная работа №4_1
ТЕСТИРОВАНИЕ НА ОСНОВЕ XPATH-СЕЛЕКТОРОВ
по курсу: Программная инженерия
СТУДЕНТКА ГР. № |
Z0411 |
|
25.01.25 |
|
М. В. Карелина |
|
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
Номер студенческого билета: 2020/3477
Санкт-Петербург
2025
Цель: получение практических навыков по тестированию веб-элементов на основе XPath-селекторов.
Для достижения поставленной цели требуется решить следующие задачи:
1. Определить XPath-селектор веб-элемента средствами DevTools.
2. Осуществить поиск веб-элементов с помощью XPath-селекторов.
3. Реализовать фильтрацию элементов на основе функций, операторов сравнения, логических операций, которые реализованы в языке XPath.
4. Зафиксировать результат обучения в отчете.
Вариант 7 (Рис. 1)
Рисунок 1 - Страница с вариантом задания
Активируем веб-элемент средствами DevTools (Рисунок 2).
Рисунок 2 - Выбор элемента курсором на странице
Перейдем в контекстном меню «Копировать» > «Копировать полную строку XPath» (Рисунок 3).
Рисунок 3 - Копирование пути к элементу
Вставим скопированное выражение в строку поиска (Рисунок 4):
/html/body/main/div[2]/div/section/div[1]/img.
XPath-путь показывает полный путь до элемента, который описывает Мистера Крабса. В нем показана вложенность тегов друг в друга. В конце запроса стоит div, который отмечен как первый элемент из коллекции, завершается запрос узлом img. Если скопировать просто XPath, то будет автоматически сгенерирован относительный XPath-путь: //*[@id="crubs"].
Рисунок 4 - Поиск элемента по XPath
Выбор всех элементов на веб-странице осуществляют с помощью выражения //*[@*] (Рисунок 5). Найдено 159 элементов.
Рисунок 5 - Выбор всех элементов
Создадим запрос для нахождения изображения с id Райнер: //img[@id='cheecks'], затем по классу Колоссальный титан //img[@class= 'sheldonPlankton'] (Рисунки 6-7).
Рисунок 6 - Выбор по атрибуту
Рисунок 7 - Выбор по атрибуту
Фильтрацию можно провести по порядковому номеру. Допустим, необходимо выбрать вторую по порядку картинку. Для этого требуется найти элемент с классом "gallery", перейти к коллекции div и выбрать его второго потомка (Рисунок 8).
Рисунок 8 - Фильтрация по порядковому номеру в коллекции
Язык XPath использует функции. Например, с помощью функции last() можно найти последний div в коллекции и перейти в нем к тегу img (Рисунок 9). Применим запрос /html/body/main/div/div/section/div[last()]/img
Рисунок 9 - Результат применения функции last()
Функцию contains() используют в предикатах выражений XPath для случаев если значение атрибута элемента или его текстовое содержимое может динамически изменяться. Функция contains() позволяет находить элемент по текстовой подстроке значения атрибута или его текстового содержимого.
Выполним запрос:
/html/body/main/div/div/section/div/h1[contains(text(),"рм" )]. Нам выдало 3 результата (Рисунок 10).
Рисунок 10 - Результат применения функции
В фильтрации используют логические операции AND, OR, NOT. Предположим, нам нужно найти изображения с именем Колоссальный или классом Бронированный титан.
Выполним запрос //img[@name="eugene" or @class= "squidwardTentacles"]. Результат выполнения. (Рисунок 11).
Рисунок 11 - Результат применения запроса с логическими операторами
Вывод
В ходе выполнения лабораторной работы мною были освоены навыки по тестированию веб-элементов на основе XPath-селекторов. Мы осуществили поиск веб-элементов с помощью XPath-селекторов, реализовали фильтрацию элементов на основе функций, операторов сравнения, логических операций, которые реализованы в языке XPath.
Синтаксис XPath мне показался довольно сложным и непривычным, также я пока не до конца понимаю, как именно это может помочь в тестировании веб-интерфейсов, но, в целом, особых проблем при выполнении данной работы не возникло.