humanemulator.net — справка.
Продукт, демо и покупка — на
хуманэмулятор.рф
|
Демо
|
Купить
|
API
|
лог изменений
mouse_move_to
mouse_move_to($dx=1,$dy=1,$type="curve",$time=1000); - эмулировать перемещение мыши на уровне железа относительно левого верхнего угла элемента по заданной траектории. Доступна с верии 7.0.24.Функция на вход принимает параметры:
- "line" - перемещение по прямой линии
- "curve" - перемещение по случайной кривой
- "chaotic" - хаотичное перемещение
- "circle" - по круговой траектории
- "readtext" - имитации чтения текста
После отработки функция возвращает результат своей работы в скрипт (тип возвращаемого значения boolean):
Пример использования
<?php // Scenario: Move mouse to a DOM element with different movement patterns // Description: For current page, find a DOM element and move mouse to it using different movement patterns // Classes used: XHEElement, XHEAnchor, XHEInterface, XHEBrowser, XHEApplication, XHEMouse // Connection string to XHE API $xhe_host = "localhost:7010"; // Path to init.php file if (!isset($path)) { // Path to init.php file for connecting to XHE API $path = "../../../Templates/init.php"; // When connecting init.php file, all functionality of classes for working with XHE API will be available require($path); } // Example 1: Move mouse to a button element // Navigate to google echo WEB::$browser->navigate("http://www.google.ru"); // Get DOM element by name $targetElement = DOM::$element->get_by_name("btnI"); // Check that the DOM element was found if ($targetElement->inner_number != -1) { // Move mouse to the element with offset (1,1) echo $targetElement->mouse_move_to(1,1); } echo("\n\n"); // Example 2: Move mouse to multiple anchor elements with different movement patterns // Navigate to test site echo WEB::$browser->navigate(TEST_SITE_URL); // Get DOM element <a> by number 110 $targetAnchor1 = DOM::$anchor->get_by_number(110); // Check that the DOM element was found if ($targetAnchor1->inner_number != -1) { // Move mouse to the element with curve pattern and 2000ms duration echo $targetAnchor1->mouse_move_to(1,1,"curve",2000); sleep(1); // Get DOM element <a> by number 100 $targetAnchor2 = DOM::$anchor->get_by_number(100); // Check that the DOM element was found if ($targetAnchor2->inner_number != -1) { // Move mouse to the element with chaotic pattern and 2000ms duration echo $targetAnchor2->mouse_move_to(1,1,"chaotic",2000); sleep(1); // Get DOM element <a> by number 10 $targetAnchor3 = DOM::$anchor->get_by_number(10); // Check that the DOM element was found if ($targetAnchor3->inner_number != -1) { // Move mouse to the element with circle pattern and 2000ms duration echo $targetAnchor3->mouse_move_to(1,1,"circle",2000); // Click at current mouse position echo "\n" . SYSTEM::$mouse->click(); // Wait for page to load WEB::$browser->wait_js(); } } } // Stop the application WINDOW::$app->quit(); ?>
# Additional paths import sys sys.path.insert(0, '../../../Templates PY/') xhe_host = "127.0.0.1:7056" from xweb_human_emulator import * # начало echo("<hr><font color=blue>interface.xxxxxxxxx</font><hr>") # 1 echo("1. Перейдем в гугл : ") echo(browser.navigate("http://www.google.ru"),"<br>") sleep(1); # 2 echo("2. Переместим мышь на кнопку 'Мне повезет' : ") echo(button.get_all_by_name("btnI").get(1).mouse_move_to(1,1),"<br>") # 3 echo("3. Перейдем на rpa-bot.ru/wiki/: ") echo(browser.navigate("http://rpa-bot.ru/wiki/"),"<br>") # 4 echo("4. Переместим мышь на 2 ссылки: ") echo(anchor.get_by_number(110).mouse_move_to(1,1,"curve",2000)," ") echo(anchor.get_by_number(100).mouse_move_to(1,1,"chaos",3000)) echo(anchor.get_by_number(10).mouse_move_to(1,1,"circle",4000)) # 5 echo("\n5. Кликнем в текущей точке : ") echo(mouse.click(),"\n") browser.wait_for() # конец echo("<hr><br>") # Quit app.quit()
#region using using System; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading; using XHE; using XHE.XHE_DOM; using XHE.XHE_System; using XHE.XHE_Window; using XHE.XHE_Web; #endregion class Program:XHEScript { static void Main(string[] args) { // init XHE server = "localhost:7010"; InitXHE(); // начало echo("<hr><font color=blue>interface.mouse_move</font><hr>"); // 1 шаг echo("1. Перейдем в гугл : "); echo(browser.navigate("http://www.google.ru")+"<br>"); // 2 шаг echo("2. Переместим мышь на на кнопку 'Мне повезет' : "); echo(button.get_all_by_name("btnI").get(1).mouse_move_to(1,1)+"<br>"); // 3 шаг echo("3. Перейдем на rpa-bot.ru/wiki/ : "); echo(browser.navigate("https://rpa-bot.ru/wiki")+"<br>"); // 4 шаг echo("4. Переместим мышь по ссылкам: "); echo(anchor.get_by_number(120).mouse_move_to(1,1,"curve",1000)+" "); echo(anchor.get_by_number(110).mouse_move_to(1,1,"circle",1000)+" "); echo(anchor.get_by_number(10).mouse_move_to(1,1,"chaotic",1000)+"<br>"); // 5 шаг echo("5. Кликнем в текущей точке : "); echo(mouse.click()+"\n"); browser.wait_for(); // конец echo("\n\n"); app.quit(); } }
// подключим функциональные объекты, если еще не подключен xhe_host="127.0.0.1:7056"; echo=require("../../../Templates JS/init.js"); // начало echo("<hr><font color=blue>interface.mouse_move</font><hr>"); // 1 шаг echo("1. Перейдем в гугл : "); echo(browser.navigate("http://www.google.ru")+"<br>"); // 2 шаг echo("2. Переместим мышь на кнопку 'Мне повезет' : "); echo(button.get_all_by_name("btnI").get(1).mouse_move_to(1,1)+"<br>"); // 3 шаг echo("3. Перейдем на rpa-bot.ru/wiki/: "); echo(browser.navigate("https://rpa-bot.ru/wiki/")+"<br>"); // 4 шаг echo("4. Переместим мышь на 2 ссылки: "); echo(anchor.get_by_number(110).mouse_move_to(1,1,"curve",2000)+" "); echo(anchor.get_by_number(100).mouse_move_to(1,1,"circle",1000)+" "); echo(anchor.get_by_number(10).mouse_move_to(1,1,"chaotic",1000)+"\n"); // 5 шаг echo("5. Кликнем в текущей точке : "); echo(mouse.click()+"\n"); // конец echo("\n"); // Quit app.quit();
=============================================
Interface Объекты DOM System Vision Web Window
=============================================
Если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум.