Запись действий пользователя в браузере Human Emulator Studio с помощью Макроса.
Одним из первых инструментов встроенных в программу, который был добавлен для упрощения создания скриптов, является Макрос.
Как это работает?
При включении Макроса происходит запись ваших действий в браузере, таких как переход на страницы в браузере, все возможные клики по элементам, ввод данных в различные поля браузера. При этом есть два режима работы, это когда все действия записываются через управление мышью или же с помощью функций для работы с отдельными объектами.
Настройка Макроса.
Прежде чем начать запись нужно настроить Макрос. Настройки Макроса находятся в общих настройках программы закладка Макрос.
Теперь давайте пройдёмся по всем пунктам настроек.
Добавлять set focus к щелчку — при выборе данной галочки к каждому вашему щелчку будет добавляться функция focus.
Добавлять mouse move к щелчку — при выборе данной галочки к каждому вашему щелчку будет добавляться функция send_mouse_move.
Добавлять ожидание к щелчку — при выборе данной галочки после каждого вашего щелчка будет добавляться функция sleep(1), то есть ожидание в одну секунду.
То есть при выборе данных настроек ваш код при клике будет таким:
1 2 3 4 |
$anchor->get_by_href("http://humanemulator.blogspot.com/")->focus(); $anchor->get_by_href("http://humanemulator.blogspot.com/")->send_mouse_move(76,19); $anchor->get_by_href("http://humanemulator.blogspot.com/")->send_mouse_click(76,19); sleep(1); |
без выбора этих настроек таким:
1 |
$anchor->get_by_href("http://humanemulator.blogspot.com/")->send_mouse_click(76,19); |
Галочки Полная эмуляция мыши и Полная эмуляция клавиатуры. При выборе этих галочек будут подставляться функции, которые полностью эмулируют движения мыши и ввод символов с клавиатуры в активное окно. В режиме полной эмуляции нельзя будет пользоваться компьютером и работать во многопоточном режиме, так как любые действия с курсором мыши или использование клавиатуры могут помешать работе скрипта.
В коде скрипта это будет так:
1 2 3 |
$anchor->get_by_href("http://humanemulator.blogspot.com/")->focus(); $anchor->get_by_href("http://humanemulator.blogspot.com/")->mouse_move(76,19); $anchor->get_by_href("http://humanemulator.blogspot.com/")->mouse_click(76,19); |
и
1 |
$keyboard->input("текст в поле"); |
вместо
1 |
$keyboard->send_input("текст в поле"); |
Раздел настроек Отлавливать события. В этом разделе выставляются устройства, действия с которыми будет записывать Макрос.
При выборе Мыши все действия в скрипте будут записываться как действия с мышью.
В скрипте это будет записываться так:
1 2 3 |
$mouse->send_move(76,19); $mouse->send_click(76,19); sleep(1); |
При выборе пункта Клавиатуры все действия ввода будут записываться через объект $keybord
в скрипте это будет
1 |
$keyboard->send_input("текст в поле"); |
Если выбран пункт Шелчков по элементам то запись в скрипт будет идти через объекты этих элементов.
В скрипте :
1 2 3 4 |
$anchor->get_by_href("http://humanemulator.blogspot.com/")->focus(); $anchor->get_by_href("http://humanemulator.blogspot.com/")->send_mouse_move(76,19); $anchor->get_by_href("http://humanemulator.blogspot.com/")->send_mouse_click(76,19); sleep(1); |
Раздел Создавать функции. Отвечает за приоритетный параметр через, который мы определяем элемент для работы с ним. По умолчанию выбран пункт Автоматически то есть элемент определяется по первому доступному параметру начиная с ID и заканчивая номером элемента.
Галочка Создавать новый скрипт. Если выбрать эту галочку то при начале записи Макроса будет создаваться новый скрипт и все действия будут записываться в этот скрипт. Если галочка убрана тогда запись будет идти в текущий скрипт, в месте где установлена каретка в редакторе.
Теперь давайте запишем простой скрипт. Включаем Макрос переходим на google.com и вводим в поисковое поле любую фразу. Нажимаем Enter. Переходим по первой ссылке в выдаче на выходе имеем такой скрипт.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$browser->navigate("https://www.google.com"); $input->get_by_id("lst-ib")->focus(); $input->get_by_id("lst-ib")->send_mouse_move(18,16); $input->get_by_id("lst-ib")->send_mouse_click(18,16); sleep(1); $keyboard->send_input("human emulator\n"); $anchor->get_by_href("https://humanemulator.info/")->focus(); $anchor->get_by_href("https://humanemulator.info/")->send_mouse_move(90,15); $anchor->get_by_href("https://humanemulator.info/")->send_mouse_click(90,15); sleep(1); |
Немного изменим настройки отключим галочки с фокусом, перемещения мыши и паузой. И вместо Enter нажмём клавишу найти.
Получим такой скрипт:
1 2 3 4 5 6 7 8 9 |
browser->navigate("https://www.google.com"); $input->get_by_id("lst-ib")->send_mouse_click(98,15); $keyboard->send_input("human emulator"); $button->get_by_name("btnK")->send_mouse_click(42,10); $anchor->get_by_href("https://humanemulator.info/")->send_mouse_click(78,4); |
Особенности работы с Макросом.
Как не трудно заметить работа в Макросе идёт через Dom Interface объектов. ТО есть получив сам элемент вы можете делать с ним различные действия такие как:
Действия с элементом
click – клик по элементу
meta_click – фокус, перемещение мыши в элемент по случайным координатам и щелчок
event – послать событие элементу
check – чекнуть элемент
focus – задать фокус ввода на элемент
scroll_to_view – скролировать страницу так, чтобы элемент был виден (через java script)
ensure_visible – скролировать страницу так, чтобы элемент был виден (через прокрутку)
scroll – скролировать элемент
screenshot – сделать скриншот элемента
Изменить элемент
set_value – задать значение
set_inner_text – задать внутренний текст
set_inner_html – задать внутренний хтмл
add_attribute – добавить аттрибут
set_attribute – задать аттрибут
remove_attribute – удалить аттрибут
и т.д.
И все эти действия можно будет выполнять с любым элементом будь то ссылка или кнопка. И получить элемент страницы в виде интерфейса можно с помощью одинаковых для всех элементов страницы функций:
Получение DOM интерфейса
get_by_number – получить DOM интерфейс по номеру
get_by_name – получить DOM интерфейс по имени
get_by_id – получить DOM интерфейс по id
get_by_inner_text – получить DOM интерфейс по внутреннему тексту
get_by_inner_html – получить DOM интерфейс по внутреннему html
get_by_outer_text – получить DOM интерфейс по внешнему тексту
get_by_outer_html – получить DOM интерфейс по внешнему html
get_by_href – получить DOM интерфейс по href
get_by_alt – получить DOM интерфейс по alt
get_by_src – получить DOM интерфейс по src
get_by_value – получить DOM интерфейс по value
get_by_attribute – получить DOM интерфейс по значению атрибута
get_by_properties – получить DOM интерфейс по значению нескольких свойств
get_by_xpath – получить DOM интерфейс по его XPath
То есть как и в других функциях мы работаем с элементами страницы по нескольким параметрам, таким как name, id, порядковый номер и т.д. Всё это можно посмотреть через инспектор элементов или воспользоваться всё тем же контекстным меню.
Использование Макроса.
Макрос пригодиться когда нужно писать простые скрипты или какие то части скриптов, когда не получается определить какие то элементы другими инструментами. При этом надо понимать что записанные Макросом скрипты всё равно придётся править, так как через Макрос мы записываем действия с элементами страницы. Добавление не связанных с элементами страницы функций можно делать с используя другой инструмент — Помощник кода.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.