Save SuperJob Jobs
Last updated
Last updated
Рассмотрим пример робота, который автоматически сохраняет отклики на созданную вакансию на сайте SuperJob. Для правильной работы необходимо заранее войти в личный кабинет на сайте через браузер “Google Chrome”.
Проект робота состоит из одной диаграммы.
Диаграмма проекта выглядит так (для удобства блоки диаграммы пронумерованы):
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Запустить Chrome” позволяет запустить браузер Google Chrome. Для данного блока указаны следующие свойства:
URL (адрес открываемой при запуске страницы, указанный с помощью переменной);
Время ожидания (время ожидания запуска приложения и загрузки вкладки в секундах).
Блок “Получить текст” позволяет получить текст или значение атрибута заданного элемента веб-страницы (заголовка, ссылки, поля редактирования, текстового блока и т.д.). Данный блок записан с помощью инструмента “Запись”. Для него указаны следующие свойства:
Селектор (идентификатор окна браузера и элемента веб-страницы);
Тип значения (выбор типа извлекаемого значения);
Автоскроллинг (при установленном флаге будет произведен автоматический скроллинг до элемента);
ID процесса (переменная, в которой хранится идентификатор процесса и вкладки браузера, используемые данным блоком. Если свойство оставить пустым, либо если переменная "ID процесса" не была ранее присвоена в момент открытия браузера, приложение и вкладка браузера будут определены из содержимого соответствующей строки селектора.);
Задержка перед (задержка в секундах перед выполнением блока);
Задержка после (Задержка в секундах после выполения блока);
Время ожидания (предельное время ожидания заданного элемента в секундах).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $Result != "Вход". Т. е., переменная не равна “Вход”.
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота сообщение “Нажимаем отклики” и отображает его в статусе.
и 7. Блоки “Клик мышкой” производит клик по заданному элементу приложения.
8. Блок “Посчитать элементы” позволяет получить количество однотипных элементов на веб-странице по заданному селектору. Данный блок записан с помощью инструмента “Запись”. Для него указаны следующие свойства:
Селектор (идентификатор окна браузера и элемента веб-страницы, общий для всех искомых однотипных элементов);
ID процесса (переменная, в которой хранится идентификатор процесса и вкладки браузера, используемые данным блоком);
Таймаут (предельное время подсчета элементов в секундах).
9. Блок “Цикл” позволяет повторить цепочку действий (блоков) несколько раз и при этом посчитать количество итераций цикла, записывая текущее количество в специальную переменную (указанную в свойстве “Цикл”), которую можно затем использовать в других блоках. При первом входе в блок значение переменной из свойства “Цикл” приравнивается к “Начальному значению” (в данном случае оно равно 0), а затем выполнение сценария продолжается в сторону выхода “Цикл” данного блока (в, так называемое, “тело цикла”). Как только выполнение сценария вновь дойдет до данного блока, значение переменной “Цикл” увеличится на значение “Шаг” (в данном случае, он равен 1), и вновь произойдет переход в сторону выхода «Цикл». Как только значение переменной “Цикл” станет больше или равно “Конечному значению” (в данном случае, оно задано переменной $CountItem), выполнение сценария продолжится в сторону нижнего выхода блока. Не забудьте соединить выход последнего блока в теле цикла со входом данного блока или какого-либо из предшествующих блоков.
Блоки 10. - 13. записаны с помощью инструмента “Запись”.
14. Блок “Закрыть вкладку браузера” позволяет закрыть заданную вкладку указанного браузера. Для данного блока указан ID процесса (переменная, в которой хранится идентификатор процесса и вкладки браузера, используемые данным блоком).
15. Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог сообщение “Ошибка авторизации”.
16. Блок “Очистить кэш селекторов” позволяет очистить внутренний кэш селекторов. При использовании селекторов для ускорения поиска элементов на странице используется внутренний кэш. В кэш заносится информация об элементе после его успешного определения, и в дальнейшем при поиске элемента сначала проверяется кэш. Если в кэше присутствует информация по данному селектору, то она извлекается из него, что существенно ускоряет работу робота. Однако, в некоторых случаях, данный кэш может негативно сказываться на работе сценария. Часто это наблюдается при циклической обработке каких либо однотипных элементов на одной странице, например результатов поиска. В таких случаях рекомендуем очищать кэш при запуске каждой итерации перебора однотипных элементов на странице.
Блоки 17. - 21. записаны с помощью инструмента “Запись”. Данные блоки содержат серию эмуляции кликов мышкой и нажатий клавиш клавиатуры.
22. Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $Result. Т. е., если указана просто переменная, то она проверяется на $true или $false.
23. Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота сообщение “Авторизация” и отображает его в статусе.
24. и 25. Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).