пятница, 16 июля 2010 г.

Новый уровень эмуляции работы с мышкой

В XWeb Human Emulator версии 4.0.10 объекту $mouse был добавлен ряд функций, позволяющий совершать различные манипуляции мышью не задействуя само устройство. Другими словами, при использовании функций нового вида ваша мышка не будет истерично дёргаться и мешать заниматься своими делами на рабочем компьютере.

Помимо этого, функции корректно работают из свёрнутой в трей программы, не требуя её разворачивания, а при использовании многопоточной версии Эмулятора совершают клики, не мешая другим копиям.

Вот их список:


  • $mouse->send_click($x,$y); - обычный клик левой кнопкой мышки.
  • $mouse->send_left_button_down($x,$y); - зажатие левой кнопки мышки.
  • $mouse->send_left_button_up($x,$y); - отпускание левой кнопки.
  • $mouse->send_right_button_click($x,$y); - клик правой кнопкой.
  • $mouse->send_right_button_down($x,$y); - зажатие правой кнопки.
  • $mouse->send_right_button_up($x,$y); - отпускание правой кнопки.

Чтобы проверить это, создайте новый скрипт и к уже имеющимся там строчкам:


// navigate to google
$browser->navigate("http://www.google.com");
// wait on browser
$browser->wait(1);

Добавьте ещё три:


$app->minimize_to_tray();
sleep (3);
$mouse->send_click(605,410);

Координаты клика в моём браузере указывают на линк «Google.com in English». Функция «app->minimize_to_tray», как ясно из названия, сворачивает программу в трей, а «sleep» добавлен для чистоты эксперимента, что б программа успела свернуться прежде чем выполнит клик по координатам.

Проверьте, совпадают ли указанные в функции координаты с элементом, на который вы хотите кликнуть, и запустите скрипт.

Использование этой функции не сдёргивает фокус на Эмулятор и не смещает положение курсора мыши, что больше не требует выделения отдельного компьютера для работы программы с флеш-сайтами и различными сложными ситуациями.

среда, 14 июля 2010 г.

Шаблоны в Human Emulator

При некотором опыте составления скриптов для Хумана можно заметить, что многие их кусочки остаются такими же самыми от задачи к задаче. К примеру, в практически любом скрипте используются циклы для перебора и/или сравнения. Если вам понадобится использование прокси, то наверняка в скрипте будет присутствовать строка вроде:

$proxy = file(‘C:\proxy.txt’);

Разве что другой путь к файлу поставите.

Для простоты работы с подобными случаями в Эмуляторе предусмотрена возможность добавления и редактирования шаблонов, с помощью которых можно не тратить время на написание повторяющихся из раза в раз кусков кода, не искать их по ранним скриптам и попросту экономить время.

Давайте попробуем добавить один шаблон и оценить предоставляемые ими возможности.

В выпадающем меню «Редактировать» откройте «Редактировать Шаблоны…». Напишите в поле «Ключ Шаблона» слово “for”, а в самом шаблоне код:

Нажмите кнопку «Добавить», потом «Сохранить». Не сложно и достаточно быстро, правда? Теперь, чтобы в нашем скрипте появился сохранённый нами код, достаточно написать ключ шаблона “for” и нажать ctrl+вниз.

Таким же самым способом можно добавить шаблоны самых популярных лично у вас кусочков кода и периодически применяемых функций, к примеру из скрипта gen_login_pass, который можно найти в статье http://www.humanemulator.info/351

понедельник, 5 июля 2010 г.

Функция графического поиска на странице

В версии 4.0.10 программы Human Emulator к объекту $webpage были добавлены две функции: get_x_in_webpage_picture и get_у_in_webpage_picture. Их появление прошло тихо и незаметно, но предоставляемыми возможностями они заслуживают отдельного описания.

Цель этих функций – находить координаты чего-либо по картинке образцу. Изображение на картинке автоматически сравнивается со скриншотом сайта, а при совпадении вычисляются и возвращаются координаты. Если нужный вам элемент «плавает» с каждым обновлением страницы или вы работаете с флешем, где довольно сложно составить скрипт, пользуясь только кликами по координатам, то эти функции помогут.

Для примера, давайте перейдём на страницу http://tinymce.moxiecode.com/examples/full.php и сделаем картинку-образец. Размер картинки особо не важен, функции вернут координаты первого полного совпадения (сравнение происходит по цвету и позиции каждого пикселя). Изображение нужно сохранить в расширении bmp и глубиной цвета 24 бит. Вот копия картинки, которую для опытов взял я: XHE

Теперь очередь скрипта. Получить координаты можно с помощью следующего кода:


require("../Templates/xweb_human_emulator.php");

$x=$webpage->get_x_in_webpage_picture("C:\\1.bmp");
$y=$webpage->get_y_in_webpage_picture("C:\\1.bmp");
echo "Координаты картинки: $x $y";

// Quit
$app->quit();
?>

Как вы догадались, картинку свою я назвал «1.bmp» и сохранил её в корневик диска C:. Теперь, после запуска этого скрипта, у нас будут её координаты. А имея координаты, можно легко по ним кликнуть функцией $mouse->click($x,$y); Добавьте её в скрипт, проверьте результат и поэкспериментируйте с другими образцами.

Таким образом, с помощью этих функций можно настроить работу с мышью вне зависимости от размеров окна браузера и расположения ключевых элементов.

  • Удобный функционал для сохранения картинок-образцов будет добавлен в ближайших версиях.
  • Можете смело скидывать любые свои соображения по поводу расширения данной возможности программы в аську техподдержки.
Более подробно о программе, а так же ознакомительное видео Вы всегда можете найти на официальном сайте программы Human Emulator