Лабораторные работы Цифровая кафедра ФЭА 4 семестр / Введение в тестирование веб-приложений / cktestwebfourth
.pdfМИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА) Цифровая Кафедра
ПРАКТИЧЕСКАЯ РАБОТА №4
Тестирование на основе XPath
Вариант - 7
|
|
|
Комарницкий М. С. |
|
|
|
Коншин М. В. |
Студенты гр. 4404 |
|
Кудрявцев С. А. |
|
Преподаватель |
|
|
Турнецкая Е.Л. |
Санкт-Петербург
2026
Цель.
Получение практических навыков по тестированию веб-элементов на основе XPath-локаторов.
Задачи.
1.Определить XPath-локаторов веб-элемента средствами DevTools.
2.Осуществить поиск веб-элементов с помощью XPath-локаторов.
3.Реализовать фильтрацию элементов на основе функций, операторов срав-
нения, логических операций, которые реализованы в языке XPath.
4.Зафиксировать результат обучения в отчете.
Для выполнения практической работы будем использовать браузер Safari.
Нахождение программного кода веб-элемента на основе XPath-пути.
В данном разделе продемонстрировано нахождение элементов с помощью полных и простых XPath-путей, полученных встроенными средствами браузера (DevTools).
Абсолютный XPath-путь.
Был выбран элемент на странице и через контекстное меню DevTools скопирован полный XPath-путь: /html/body/main/div[2]/div/section/div[2]/img
Недостаток абсолютного пути заключается в том, что при любом изменении структуры страницы путь становится недействительным.
Скриншот 1. Абсолютный XPath-путь
Относительный XPath-путь.
Для этого же элемента был скопирован простой (относительный)
XPath: //*[@id="patrick"]
Выполним поиск по относительному пути. Он позволяет искать элементы в любом месте веб-страницы.
Скриншот 2. Поиск по относительному XPath-пути
Поиск веб-элементов по атрибутам, индексам и с использованием функций.
В этом разделе выполнены различные виды фильтрации выборки узлов DOM.
Выбор всех элементов на веб-странице.
С помощью подстановочного символа * осуществлен выбор всех элементов на текущей веб-странице. В строке поиска DevTools видно общее количество найденных узлов.
Скриншот 3. Выбор всех элементов на веб-странице
Поиск элементов по двум произвольным атрибутам.
Был осуществлен поиск элементов с использованием предикатов по атрибутам class и id.
Запрос по классу: //div[@class='imageContainer box-shadow']
Найдены все контейнеры изображений, имеющие указанный класс.
Скриншот 4. Результаты поиска элементов по классу
Запрос по ID: //img[@id='patrick']
Найдено конкретное изображение по его уникальному идентификатору.
Скриншот 5. Результаты поиска по ID
Поиск элемента коллекции по порядковому номеру.
Запрос: //div[@class="gallery"]/div/section/div[3]
Выполнена фильтрация коллекции. Запрос находит элемент с классом gallery, переходит к его потомкам и выбирает строго третий элемент div.
Скриншот 6. Результаты поиска элемента коллекции по порядковому номеру
Использование встроенных функций XPath.
В запросах применены функции text() и last() Запрос с функцией text(): //h1[text()="Патрик Стар"]
Функция позволила найти элемент заголовка строго по его текстовому содержимому.
Скриншот 7. Результаты поиска по текстовому содержимому
Запрос с функцией last(): /html/body/main/div/div/section/div[last()]/img
Функция last() применена для нахождения последней карточки (div) в коллекции элементов на странице.
Скриншот 8. Результаты поиска последней карточки в коллекции элементов
Сложный запрос с применением логических операций.
Запрос: //img[@name="squidward" or @name="sponge-bob"]
Реализован сложный запрос с применением логического оператора OR. Данный запрос отфильтровал и нашел сразу два независимых изображения, удовлетворяющих хотя бы одному из заданных условий.
Скриншот 9. Результаты сложного поиска с применение оператора OR
Вывод.
В ходе выполнения практической работы были успешно достигнуты поставленные цели: получены и закреплены практические навыки тестирования веб-элементов на основе XPath-локаторов методом «белого ящика». В процессе работы были освоены механизмы поиска элементов в структуре DOM документа средствами браузера DevTools.
Мы научились составлять как абсолютные пути от корневого узла, так и относительные запросы, которые являются более гибкими при изменении структуры страницы. На практике были отработаны навыки применения предикатов для фильтрации узлов по значениям различных атрибутов (id, class, name), а также по индексу элемента внутри коллекции. Одной из трудностей при выполнении работы было понимание синтаксиса встроенных функций и объединения условий, однако применение функций text(), last() и логических операторов позволило решить проблему создания сложных и точных запросов для динамических элементов. Полученные навыки критически важны для дальнейшей автоматизации тестирования пользовательских интерфейсов.
