- Регистрация
- 22.05.2010
- Сообщения
- 1 327
- Благодарностей
- 663
- Баллы
- 113
Данный код позволяет очень удобно работать с xpath из C# шага, задача кода - замена стандартных "кубиков" на более продвинутый метод поиска элементов - xpath, при этом в удобной обёртке.
Технология xpath очень гибкая, в частности одно из популярных применений (которые сложно сделать без неё стандартными средствами ZP) - поиск элементов методом "найти элемент, а в нём другой элемент, а в нём третий..." то есть вложенный поиск когда невозможно найти уникальный признак по которому можно сразу идентифицировать элемент.
Также можно например найти соседний элемент (который имеет уникальный признак), и от него "оттолкнуться" чтобы найти нужный нам элемент (который не имеет уникального признак поиска). В общем простор для поиска элементов просто широчайший.
Как работает:
- Вставляется функция в блок "общий код", это и есть обработчик
- Из C# шага вызывается код "клиента" который выполняет что вам надо (кликнуть, взять что-то, установить значение, в общем классический get|set|rise)
В чём основное удобство, вот так выглядит код в C# шаге:
Входные параметры:
xpath_exp - выражение xpath для нахождения элемента
action_ev - что делаем с элементом, возможные варианты:
аргумент 1:
- get - взять значение
- set - установить значение
- rise - выполнить JS event
аргумент 2: то что делаем с элементом, например комплексные варианты с примерами:
get|width - взять ширину найденого элемента
set|value - установить значение в элемент, например в текстовое поле нужный вам текст
rise|click - клик по элементу
В общем здесь всё то же самое что и в конструкторе действий.
set_action - используется лишь в случаях когда делается set (например set|value или там set|style), то есть установка значения, в этом случае пишется указанный текст, то есть то что будет прописано в значении.
Также реализованы следующие фишки:
rise|scroll - промотает до нужного элемента
set|selecteditems - выбор выпадающего меню, при этом поддерживает Regex:ваш_текст
Прочая информация:
- Код работает начиная с версии ZP 5.8.0.0
- Используется тип эмуляции заданный в проекте (в настройках, либо заданный вами в шаге)
- Сейчас пока что нет возможности распознавать капчу таким образом (не сделан get|captcha)
- Если элемент не будет найден, то этот шаг выйдет с ошибкой
- Для составления xpath выражений удобно использовать расширение браузера FireFox под названием Firepath (ставится как дополнение к дополнению Firebug)
- Код написал darkdiver по моей просьбе, за что ему низкий поклон и большая благодарность
- Уроки по xpath можно найти здесь http://zvon.org/xxl/XPathTutorial/Output_rus/example1.html
Пример использования кода во вложениях.
Технология xpath очень гибкая, в частности одно из популярных применений (которые сложно сделать без неё стандартными средствами ZP) - поиск элементов методом "найти элемент, а в нём другой элемент, а в нём третий..." то есть вложенный поиск когда невозможно найти уникальный признак по которому можно сразу идентифицировать элемент.
Также можно например найти соседний элемент (который имеет уникальный признак), и от него "оттолкнуться" чтобы найти нужный нам элемент (который не имеет уникального признак поиска). В общем простор для поиска элементов просто широчайший.
Как работает:
- Вставляется функция в блок "общий код", это и есть обработчик
- Из C# шага вызывается код "клиента" который выполняет что вам надо (кликнуть, взять что-то, установить значение, в общем классический get|set|rise)
В чём основное удобство, вот так выглядит код в C# шаге:
C#:
string xpath_exp = "//select[@id='lang-chooser']/option[@selected='selected'][contains(.,'United States')]";
string action_ev = "rise|focus";
string set_action ="";
return CommonCode.FindElementAndExecuteAction(instance, xpath_exp, action_ev, set_action);
xpath_exp - выражение xpath для нахождения элемента
action_ev - что делаем с элементом, возможные варианты:
аргумент 1:
- get - взять значение
- set - установить значение
- rise - выполнить JS event
аргумент 2: то что делаем с элементом, например комплексные варианты с примерами:
get|width - взять ширину найденого элемента
set|value - установить значение в элемент, например в текстовое поле нужный вам текст
rise|click - клик по элементу
В общем здесь всё то же самое что и в конструкторе действий.
set_action - используется лишь в случаях когда делается set (например set|value или там set|style), то есть установка значения, в этом случае пишется указанный текст, то есть то что будет прописано в значении.
Также реализованы следующие фишки:
rise|scroll - промотает до нужного элемента
set|selecteditems - выбор выпадающего меню, при этом поддерживает Regex:ваш_текст
Прочая информация:
- Код работает начиная с версии ZP 5.8.0.0
- Используется тип эмуляции заданный в проекте (в настройках, либо заданный вами в шаге)
- Сейчас пока что нет возможности распознавать капчу таким образом (не сделан get|captcha)
- Если элемент не будет найден, то этот шаг выйдет с ошибкой
- Для составления xpath выражений удобно использовать расширение браузера FireFox под названием Firepath (ставится как дополнение к дополнению Firebug)
- Код написал darkdiver по моей просьбе, за что ему низкий поклон и большая благодарность
- Уроки по xpath можно найти здесь http://zvon.org/xxl/XPathTutorial/Output_rus/example1.html
Пример использования кода во вложениях.
Вложения
-
32,7 КБ Просмотры: 1 545
Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование: