Автокликер для браузера с помощью Human Emulator

Автокликер для браузера с помощью Human Emulator.

Автокликер это программа, которая записывает все действия связанные с управлением мыши и клавиатурой и после этого воспроизводит все эти действия автоматически. Соответвенно, автокликер для барузера это программа, которая повторяет необходимые действия в браузере.

Во всех версиях программы есть все необходимые инструменты для записи и управления клавиатурой и мышь. Для записи используется инструмент Макрос, который записывает ваши действия во встроенном в программу браузере.

Макрос.

Работа с Макросом описана в статье Запись действий пользователя в браузере Human Emulator Studio с помощью Макроса. Эта работа идентична во всех версиях программы. Единственное, что для написания автокликера нужно будет в настройках Макроса указать галочки Полная эмуляция мыши и Полная эмуляция клавиатуры. В этом случае будет использовать реальные клавиатура и мышь.

Эмуляция клавиатуры.

Для управления клавиатурой во все версии программы добавлен объект keyboard. Этот объект обеспечивает полное управление всеми возможностями клавиатуры. Причём в двух режимах: полной эмуляции клавиатуры и передача действий от клавиатуры в браузер.

Полная эмуляция клавиатуры.

В режиме полной эмуляции клавиатуры Human Emulator управляет вводом с реальной клавиатуры, то есть он передаёт события таким образом, как будто это делает реальный человек нажимает на клавиши клавиатуры. В этом случае все действия с клавиатурой будут выполняться в любом активном окне, будь то окно встроенного в программу браузера или это открытое окно программы Блокнот. Функции полной эмуляции.

Пример работы на php в режиме полной эмуляции:


// переходим на поисковик
$browser->navigate("http://www.google.com");

// делаем активным поле ввода текста
$input->set_focus_by_name("q");
// вводим текст
$keyboard->input("human emulatorn",10);

Пример ввода с клавиатуры в открытое окно блокнота для программ на основе Internet Explorer:


$textfile->write_file("1.txt","1");
// открое программу для редактирование
$app->shell_execute("open","1.txt","",'',true);
// пауза на запуск программы
sleep(5);
// вводим текст в активное окно
$keyboard->input("human emulatorn",10);

В Human Emulator Studio работа с командой input немного отличается, поэтому для того что бы выполнить такое же действие как в примере выше нужно либо использовать буфер обмена:


// создадим файл
$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:


// создадим файл
$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 emulatorn");

Передача событий от клавиатуры в браузер.

Второй режим это передача событий. На самом деле когда вы работаете с клавиатурой, то после каждого нажатия на клавишу активное окно программы получается ряд сообщений и на основании этих сообщений выполняется соответствующее действие. При чём, это событие переходит от одного активного окна в следующее. То есть при вводе текста с клавиатуры в текстовое поле в браузере это сообщение получает сначала окно браузера, а потом через цепочку родительских элементов и текстовое поле, а также все его дочерние элементы. В случае с передачей событий исключается вся цепочка выше этого элемента и все события попадают в этот элемент и дальше. Таким образом, можно работать одновременно в нескольких десятках браузеров, в то время как в режиме полной эмуляции можно работать только с одним активным окном браузера, как это происходит при реальном использовании клавиатуры. Все команды передачи событий объекта keyboard имеют приставку send_* .

Пример передачи событий на php:


// переходим на поисковик
$browser->navigate("http://www.google.com");

// делаем активным поле ввода текста
$input->set_focus_by_name("q");
// вводим текст
$keyboard->send_input("human emulatorn",10);

Помимо команд объекта keyboard у всех объектов для работы с элементами DOM HTML есть функции send_keyboard_input_by_*. Эти функции передают события ввода с клавиатуры в HTML элемент.

Эмуляция мыши.

Для управления мышью во все версии программы добавлен объект mouse. Как и с клавиатурой работать с мышью можно также в двух режимах: полная эмуляция действий мыши и передача событий от мыши элементу браузера. Принцип работы такое же и с клавиатурой полная эмуляция использование реального курсора мыши, а в режиме передачи событий все события от мыши передаются в элемент.

Полная эмуляция мыши.

Работа с реальной мышью. В этом режиме будет задействован реальный курсор мыши ив процессе выполнения действий мыши можно будет наблюдать за тем как курсор на мониторе перемещается по экрану. Для полной эмуляции в объект были добавлены соответствующие команды. С помощью этих команд можно выполнять все действия, которые человек может выполнить с настоящей мышью: выполнять клики разными кнопками, крутить колесо, зажимать и отжимать кнопки, перемещать курсор.

Пример использования полной эмуляции на php:


// перейти на сайт
$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:


$textfile->write_file("1.txt","1");
// открое программу для редактирование
$app->shell_execute("open","1.txt","",'',true);
// пауза на запуск программы
sleep(5);
// открыть контекстное меню с помощью клика правой кнопкой мыши
$mouse->right_button_click();

Пример кликов мыши во внешнем окне в Human Emulator Studio на основе Chromium:


// создадим файл
$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:


// перейти на сайт
$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 (интрефейс для управления внешними окнами) можно не только работать в режиме полной эмуляции, но и передавать в эти окна события от мыши. Посмотреть список команд.


// создадим файл
$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 будет:


// переходим на поисковик
$browser->navigate("http://www.google.com");
// получить интерфейс текстового поля
$q_txt= $input->get_by_name("q");
// эмуляция событий клавиатуры
$q_txt->input("human emulatorn","10");
sleep(1);
// передача событий от мыши
$q_txt->mouse_click(10,10);

а передача события этому же полю будет выглядеть так:


// переходим на поисковик
$browser->navigate("http://www.google.com");
// получить интерфейс текстового поля
$q_txt= $input->get_by_name("q");
// эмуляция событий клавиатуры
$q_txt->send_input("human emulatorn","10");

sleep(1);
// передача событий от мыши
$q_txt->send_mouse_click(10,10);

Случайные траектории мыши.

При вызове команды перемещения курсора мыши move или send_move курсор мыши переносится по прямой от начальной точке к точке заданной в команде. Но иногда возникает необходимость перемещать мышь по сложным и случайным траекториям, то есть так как это делал бы человек просматривая страницу или читая на ней текст. Для этой цели в программу были добавлены команды move_to и send_move_to . Эти команды перемещают курсор по случайным траекториям в виде линии, кривой, хаотичного перемещения, по круговой траектории и по траектории имитации чтения текста.

Пример на php:


// Перейдем на 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 имеют достаточно функционала, чтобы с его помощью сделать не только автокликер браузера, но и автокликер для внешних окон.

Видео пример работы с клавиатурой и мышью в Human Emulator.

Обсудить на форуме

2.6/5 - (5 голосов)

Актуальные ответы на сайте (не устаревший пост):


Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.