Автокликер для браузера с помощью Human Emulator.
Автокликер это программа, которая записывает все действия связанные с управлением мыши и клавиатурой и после этого воспроизводит все эти действия автоматически. Соответвенно, автокликер для барузера это программа, которая повторяет необходимые действия в браузере.
Во всех версиях программы есть все необходимые инструменты для записи и управления клавиатурой и мышь. Для записи используется инструмент Макрос, который записывает ваши действия во встроенном в программу браузере.
Макрос.
Работа с Макросом описана в статье Запись действий пользователя в браузере Human Emulator Studio с помощью Макроса. Эта работа идентична во всех версиях программы. Единственное, что для написания автокликера нужно будет в настройках Макроса указать галочки Полная эмуляция мыши и Полная эмуляция клавиатуры. В этом случае будет использовать реальные клавиатура и мышь.
Эмуляция клавиатуры.
Для управления клавиатурой во все версии программы добавлен объект keyboard. Этот объект обеспечивает полное управление всеми возможностями клавиатуры. Причём в двух режимах: полной эмуляции клавиатуры и передача действий от клавиатуры в браузер.
Полная эмуляция клавиатуры.
В режиме полной эмуляции клавиатуры Human Emulator управляет вводом с реальной клавиатуры, то есть он передаёт события таким образом, как будто это делает реальный человек нажимает на клавиши клавиатуры. В этом случае все действия с клавиатурой будут выполняться в любом активном окне, будь то окно встроенного в программу браузера или это открытое окно программы Блокнот. Функции полной эмуляции.
Пример работы на php в режиме полной эмуляции:
1 2 3 4 5 6 7 8 |
// переходим на поисковик $browser->navigate("http://www.google.com"); // делаем активным поле ввода текста $input->set_focus_by_name("q"); // вводим текст $keyboard->input("human emulator\n",10); |
Пример ввода с клавиатуры в открытое окно блокнота для программ на основе Internet Explorer:
1 2 3 4 5 6 7 8 |
$textfile->write_file("1.txt","1"); // открое программу для редактирование $app->shell_execute("open","1.txt","",'',true); // пауза на запуск программы sleep(5); // вводим текст в активное окно $keyboard->input("human emulator\n",10); |
В Human Emulator Studio работа с командой input немного отличается, поэтому для того что бы выполнить такое же действие как в примере выше нужно либо использовать буфер обмена:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// создадим файл $textfile->write_file("1.txt",""); // открое программу для редактирование $app->shell_execute("open","1.txt","",'',true); // пауза на запуск программы sleep(5); // сохраняем в буфер обмена $clipboard->put_text("human emulator"); // зажимаем CTRL $keyboard->set_ctrl_prefix(true); // нажимаем V $keyboard->key(86); // отжимаем CTRL $keyboard->set_ctrl_prefix(false); |
Либо использовать функционал для управления внешними окнами.
Пример на пхп для работы в Studio:
1 2 3 4 5 6 7 8 9 10 11 12 |
// создадим файл $textfile->write_file("1.txt",""); // откроем программу для редактирование файла $app->shell_execute("open","1.txt","",'',true); // пауза на запуск программы sleep(5); // получить окно блокнота $ntp_wnd = $window->get_by_text("Notepad"); // ввести в него текст с клавиатуры $ntp_wnd->input("human emulator\n"); |
Передача событий от клавиатуры в браузер.
Второй режим это передача событий. На самом деле когда вы работаете с клавиатурой, то после каждого нажатия на клавишу активное окно программы получается ряд сообщений и на основании этих сообщений выполняется соответствующее действие. При чём, это событие переходит от одного активного окна в следующее. То есть при вводе текста с клавиатуры в текстовое поле в браузере это сообщение получает сначала окно браузера, а потом через цепочку родительских элементов и текстовое поле, а также все его дочерние элементы. В случае с передачей событий исключается вся цепочка выше этого элемента и все события попадают в этот элемент и дальше. Таким образом, можно работать одновременно в нескольких десятках браузеров, в то время как в режиме полной эмуляции можно работать только с одним активным окном браузера, как это происходит при реальном использовании клавиатуры. Все команды передачи событий объекта keyboard имеют приставку send_* .
Пример передачи событий на php:
1 2 3 4 5 6 7 8 |
// переходим на поисковик $browser->navigate("http://www.google.com"); // делаем активным поле ввода текста $input->set_focus_by_name("q"); // вводим текст $keyboard->send_input("human emulator\n",10); |
Помимо команд объекта keyboard у всех объектов для работы с элементами DOM HTML есть функции send_keyboard_input_by_*. Эти функции передают события ввода с клавиатуры в HTML элемент.
Эмуляция мыши.
Для управления мышью во все версии программы добавлен объект mouse. Как и с клавиатурой работать с мышью можно также в двух режимах: полная эмуляция действий мыши и передача событий от мыши элементу браузера. Принцип работы такое же и с клавиатурой полная эмуляция использование реального курсора мыши, а в режиме передачи событий все события от мыши передаются в элемент.
Полная эмуляция мыши.
Работа с реальной мышью. В этом режиме будет задействован реальный курсор мыши ив процессе выполнения действий мыши можно будет наблюдать за тем как курсор на мониторе перемещается по экрану. Для полной эмуляции в объект были добавлены соответствующие команды. С помощью этих команд можно выполнять все действия, которые человек может выполнить с настоящей мышью: выполнять клики разными кнопками, крутить колесо, зажимать и отжимать кнопки, перемещать курсор.
Пример использования полной эмуляции на php:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// перейти на сайт $browser->navigate("http://humanemulator.net"); // переместить курсор мыши в нужную точку $mouse->move(250,150,2); // зажать правую кнопку мыши $mouse->left_button_down(250,150); // переносим курсор мыши по новым координатам $mouse->move(1050,650,3); // отжимаем правую кнопку мыши $mouse->left_button_up(1050,650); |
Пример выше переводит курсор мыши в заданную точку страницы, зажимает левую кнопку мыши и перемещает курсор по новым координатам. После выполнения этого примеры будет выбрана часть текста на странице.
Пример кликов мыши во внешнем окне в Human Emulator на основе IE:
1 2 3 4 5 6 7 8 |
$textfile->write_file("1.txt","1"); // открое программу для редактирование $app->shell_execute("open","1.txt","",'',true); // пауза на запуск программы sleep(5); // открыть контекстное меню с помощью клика правой кнопкой мыши $mouse->right_button_click(); |
Пример кликов мыши во внешнем окне в Human Emulator Studio на основе Chromium:
1 2 3 4 5 6 7 8 9 10 11 12 |
// создадим файл $textfile->write_file("1.txt",""); // откроем программу для редактирование файла $app->shell_execute("open","1.txt","",'',true); // пауза на запуск программы sleep(5); // получить окно блокнота $ntp_wnd = $window->get_by_text("Notepad"); // ввести в него текст с клавиатуры $ntp_wnd->mouse_right_click(10, 10); |
Передача событий мыши.
Для передачи событий непосредственно в браузер используется команды c приставкой send_*. В отличие от команд полной эмуляции эти команды позволяют работать даже при свёрнутом окне программы и подходят для многопоточной работы.
Пример передачи событий от мыши на php:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// перейти на сайт $browser->navigate("http://humanemulator.net"); // переместить курсор мыши в нужную точку $mouse->send_move(250,150,2); // зажать правую кнопку мыши $mouse->send_left_button_down(250,150); // переносим курсор мыши по новым координатам $mouse->send_move(1050,650,3); // отжимаем правую кнопку мыши $mouse->send_left_button_up(1050,650); |
Через функционала объекта windowinterface (интрефейс для управления внешними окнами) можно не только работать в режиме полной эмуляции, но и передавать в эти окна события от мыши. Посмотреть список команд.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// создадим файл $textfile->write_file("1.txt",""); // откроем программу для редактирование файла $app->shell_execute("open","1.txt","",'',true); // пауза на запуск программы sleep(5); // получить окно блокнота $ntp_wnd = $window->get_by_text("Notepad"); // получить окно редактора $ntp_wnd_edt=$ntp_wnd->get_child_by_class("Edit"); // вызов контекстного меню $ntp_wnd_edt->send_mouse_right_click(10, 10); |
Интерфейс элемента.
Ещё один способ работать мышью и клавиатурой с элементами страниц в браузере это использовать функционал подключения к элементу через интерфейс.
Для получения этого интерфейса используется одна из команд доступных из любого DOM объекта программы.
После того как мы получили ссылку на интерфейс мы используем команды: Полная эмуляция мыши над элементом, Эмуляция мыши на уровне событий над элементом, Полная эмуляция клавиатуры над элементом, Эмуляция клавиатуры на уровне событий над элементом.
В этом случае наш пример для полной эмуляции клавиатуры и мыши для работы с текстовым полем Google будет:
1 2 3 4 5 6 7 8 9 10 |
// переходим на поисковик $browser->navigate("http://www.google.com"); // получить интерфейс текстового поля $q_txt= $input->get_by_name("q"); // эмуляция событий клавиатуры $q_txt->input("human emulator\n","10"); sleep(1); // передача событий от мыши $q_txt->mouse_click(10,10); |
а передача события этому же полю будет выглядеть так:
1 2 3 4 5 6 7 8 9 10 11 |
// переходим на поисковик $browser->navigate("http://www.google.com"); // получить интерфейс текстового поля $q_txt= $input->get_by_name("q"); // эмуляция событий клавиатуры $q_txt->send_input("human emulator\n","10"); sleep(1); // передача событий от мыши $q_txt->send_mouse_click(10,10); |
Случайные траектории мыши.
При вызове команды перемещения курсора мыши move или send_move курсор мыши переносится по прямой от начальной точке к точке заданной в команде. Но иногда возникает необходимость перемещать мышь по сложным и случайным траекториям, то есть так как это делал бы человек просматривая страницу или читая на ней текст. Для этой цели в программу были добавлены команды move_to и send_move_to . Эти команды перемещают курсор по случайным траекториям в виде линии, кривой, хаотичного перемещения, по круговой траектории и по траектории имитации чтения текста.
Пример на php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// Перейдем на google $browser->navigate("http://bigfozzy.com"); // пауза sleep(2); // Перейдем к точке 100,100 по линии за 1000 мс $mouse->move_to(100,100,"line",1000); // пауза sleep(2); // Перейдем к точке по кривой за 1000 мс $mouse->move_to(500,500,"curve",1000); // пауза sleep(2); // Перейдем к точке 300,300 по хаосу за 500 мс $mouse->move_to(300,300,"chaotic",1000); // пауза sleep(2); // Перейдем к точке 400,400 по окружности за 1000 мс $mouse->move_to(400,4000,"circle",1000); |
Автокликер на основе Human Emulator.
Как видно из этой статьи все версии программы Human Emulator имеют достаточно функционала, чтобы с его помощью сделать не только автокликер браузера, но и автокликер для внешних окон.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.