- PVSM.RU - https://www.pvsm.ru -
Начну эту статью с того, что я работаю QA Automationg и того, что я люблю автоматизировать все рутинные действия. Так вот в последнее время для меня таковым стало написание, редактирование и проверка локаторов к элементам на странице.
Обычно это процесс выглядит так: я пишу xpath выражение в chrome или firepath, потом копирую его и добавляю атрибут к элементу в C# коде. Но локаторы часто нужно исправлять или просто проверить, на какой элемент он указывает. И даже такое просто изменение предиката как [@id='myId'] на [contains(@id = 'Id')] заканчивается падением теста во время выполнения потому, что я написал '=' вместо ',' и поленился проверить изменения. В общем, слишком много действий с копированием, вставкой, переключений между окнами и тому подобного для такой простой задачи. Решил я написать плагин для ReSharper, который бы по Alt+Enter подсвечивал мой элемент в браузере.
Написать плагины для ReSharper и Chrome, которые в связке решали бы две простые задачи:
С первой задачей все оказалось достаточно просто. Я решил не писать свой парсер и валидатор для xpath, а просто воспользовался классом XmlDocument из .NET библиотеки:
XmlDocument document = new XmlDocument();
var navigator = document.CreateNavigator();
try
{
navigator.Compile("xpath expression");
//Если не получили исключение, то выражение валидно
}
catch (XPathException exception)
{
//Выражение не валидно
}
Вторая часть вопроса была реализована следующим образом:
Для работы поиска элементов в dom с помощью я использую библиотеку jquery.xpath.js.
Так как я никогда раньше не писал плагины для chrome, то самым сложное для меня оказалось отправка запросов с https сайта на http localhost. Google Chrome блокирует все такие запросы с веб-станицы. На поиск решения у меня ушло не мело времени, но оно оказалось очень простым и, наверное, даже логичным: запросы к http можно делать из background.js, а потом передавать результат на страничку, что я и сделал.
Пишем простейший плагин для ReSharper [1] — статья, которая помогла начать писать для ReSharper
Find.By chrome [2] — плагин для Google Chrome
Find.By resharper [3] — плагин для ReSharper
Find.By [4] — github репозиторий проекта
Автор: MYSLYVETS
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/plugins/165920
Ссылки в тексте:
[1] Пишем простейший плагин для ReSharper: https://habrahabr.ru/post/270155/
[2] Find.By chrome: https://chrome.google.com/webstore/detail/findby/phhphchblcckjanhfgimfmhopmjoefnb
[3] Find.By resharper: https://resharper-plugins.jetbrains.com/packages/Find.By/
[4] Find.By: https://github.com/YMYSLYVETS/Find.By
[5] Источник: https://habrahabr.ru/post/306930/?utm_source=habrahabr&utm_medium=rss&utm_campaign=sandbox
Нажмите здесь для печати.