Практически каждая большая продуктовая компания имеет в своём штате инженеров-тестировщиков, которые регулярно заняты процессом создания новых автоматических end2end тестов под Selenium, Katalon Studio и т.п. Работа кажется несложной, особенно если есть специальные познания в материале. Но на практике некоторые вспомогательные условия делают данную задачу очень тяжелой. И, в частности, сложности возникают с XML Path Languages (для написания правильных проверочных селекторов).
Бытует общепринятая мысль, что XPath это что-то крайне тяжелое и перегруженное сложным синтаксисом. А некоторые IT-сообщества автоматизаторов сильно сомневаются в хорошей скорости поиска по XPath. Но на практике получается все не так однозначно. Можно сказать, что абсолютно не так. И чтобы разобраться с этим, далее в материале и будет проведён анализ сильных сторон XPath, а также выделен перечень его недостатков.
Минусы
Все XPath селекторы неинформативны
Подобное мнение бытует традиционно после использования плагинов для браузера и классических средств веб-браузера под поиск на основе XPath. И стоит сказать, что так и есть: например селекторы определенного вида ( //div[1]/div[2]/ul/li/a ) не могут вызывать пользовательского оптимизма.
XPath не способно решить абсолютно все вопросы
Яркий пример — с помощью XPath нет возможности создать селекторы к псевдоклассам, а также содержимому Shadow DOM.
Для кого-то скорость работы селекторов XPath крайне мала
С этим спорить можно долго, но учитывая общее время прогона UI теста, актуальная разница в скорости функционирования селектора не очень значительна.
Плюсы
Поиск по тексту выбранного элемента
В первую очередь, когда мы сталкиваемся с проверяемым веб-приложением, мы сталкиваемся с текстом. Он может быть расположен на кнопочках, выпадающих блоках и даже в ссылках. И если параметры подобных элементов могут быть отредактированными, то текст, скорее всего, будет неизменным.
Всё это красноречиво говорит о том, что с помощью XPath можно искать элементы, где текст изменчив. Также, подобная возможность позволяет разрабатывать селекторы для построения сложных таблиц. К примеру, данный параметр будет полезен, если пользователю нужно выбрать ячейку Х в строке Y, причём столбец и строку можно найти исключительно по тексту, учитывая, что номер строки и столбца может изменяться.
Набор встроенных функций
Такие параметры как sibling, normalize-space() и прочие в совокупности с логическим оператором (например — or and not) дает возможность разрабатывать гибкие и эффективные локаторы.
Таким образом
В традиционном понимании, XPath схож с современными языками программирования: качественно созданный Xpath-селектор просто читается, по его виду сразу понятно, о каком конкретно элементе говорится. Подобное делает работу с XPath крайне удобной, увеличивает скорость разрешения типовых задач, и, следовательно минимизирует время на разработку и тестирование ПО.
0 Comments