humanemulator.net — справка. Продукт, демо и покупка — на хуманэмулятор.рф | Демо | Купить | API | лог изменений

move

move($x,$y,$scroll=true,$time=0,$tremble=5); - данная функция используется для полной эмуляции движения мыши в заданную точку браузера

Функция на вход принимает параметры:

  • $x – x - координата точки, куда нужно переместить курсор, относительно левого верхнего угла браузера. (int)
  • $y – y - координата точки, куда нужно переместить курсор, относительно левого верхнего угла браузера. (int)
  • $scroll – прокручивать ли скролл браузера до заданной точки. При false будет просто произведено перемещение в заданную точку, При true, будет произведено автоматическое скроллирование до заданной точки (boolean).
  • $time – время за которое будет сделано перемещение из текущей точки (параметр доступен с 4.6.9). (int)
  • $tremble – амплитуда дрожания траектории (для более человекоподобной эмуляции) (параметр доступен с 4.6.48). (int)


    После отработки функция возвращает результат своей работы в скрипт :
  • true – успешно произвели перемещение в заданную точку(boolean)
  • false – операция не произведена (boolean)

    Пример использования
    <?php
    // Scenario: Demonstrates how to move mouse to different elements with various parameters
    
    $xhe_host = "localhost:7010";
    // Connect functional objects if not already connected
    if (!isset($path)){
      $path = "../../../Templates/init.php";
      require($path);
    }
    // info
    echo "\n<span >mouse->" . basename (__FILE__) . "</span>\n";
    
    // Navigate to test page with buttons
    $pageUrl = TEST_POLYGON_URL . "button.html";
    echo("Navigate to test page with buttons: $pageUrl\n");
    $navigateResult = WEB::$browser->navigate($pageUrl);
    if ($navigateResult) {
        echo("Successfully navigated to test page\n");
    } else {
        echo("Failed to navigate to test page\n");
    }
    
    $zoomLevel = 200;
    echo("Set browser zoom to $zoomLevel%\n");
    $zoomResult = WEB::$browser->set_zoom($zoomLevel);
    if ($zoomResult) {
        echo("Successfully set browser zoom\n");
    } else {
        echo("Failed to set browser zoom\n");
    }
    
    // Example 1: Move mouse to button with specific parameters
    $buttonName = "btn1f";
    echo("1. Get coordinates of button with name: $buttonName\n");
    $buttonX = DOM::$button->get_x_by_name($buttonName);
    $buttonY = DOM::$button->get_y_by_name($buttonName);
    echo("Button coordinates: x = $buttonX, y = $buttonY\n");
    
    $moveX1 = $buttonX + 1;
    $moveY1 = $buttonY + 1;
    $isRelative1 = false;
    $moveTime1 = 2;
    $jitter1 = 5;
    echo("Move mouse to button coordinates: x=$moveX1, y=$moveY1, time=$moveTime1 sec, jitter=$jitter1 px\n");
    $moveResult1 = SYSTEM::$mouse->move($moveX1, $moveY1, $isRelative1, $moveTime1, $jitter1);
    if ($moveResult1) {
        echo("Successfully moved mouse to button\n");
    } else {
        echo("Failed to move mouse to button\n");
    }
    
    // Example 2: Click at current position
    echo("2. Click at current mouse position\n");
    $clickResult = SYSTEM::$mouse->click();
    if ($clickResult) {
        echo("Successfully clicked at current position\n");
    } else {
        echo("Failed to click at current position\n");
    }
    
    // Example 3: Navigate to test site
    $testSiteUrl = TEST_SITE_URL;
    echo("3. Navigate to test site: $testSiteUrl\n");
    $navigateResult2 = WEB::$browser->navigate($testSiteUrl);
    if ($navigateResult2) {
        echo("Successfully navigated to test site\n");
    } else {
        echo("Failed to navigate to test site\n");
    }
    
    // Example 4: Move mouse to two different anchor elements
    $anchorNumber1 = 110;
    echo("4. Get coordinates of anchor number $anchorNumber1\n");
    $anchorX1 = DOM::$anchor->get_x_by_number($anchorNumber1);
    $anchorY1 = DOM::$anchor->get_y_by_number($anchorNumber1);
    echo("Anchor coordinates: x = $anchorX1, y = $anchorY1\n");
    
    $moveX2 = $anchorX1 + 1;
    $moveY2 = $anchorY1 + 1;
    $isRelative2 = true;
    $moveTime2 = 2;
    $jitter2 = 5;
    echo("Move mouse to anchor coordinates: x=$moveX2, y=$moveY2, time=$moveTime2 sec, jitter=$jitter2 px\n");
    $moveResult2 = SYSTEM::$mouse->move($moveX2, $moveY2, $isRelative2, $moveTime2, $jitter2);
    if ($moveResult2) {
        echo("Successfully moved mouse to first anchor\n");
    } else {
        echo("Failed to move mouse to first anchor\n");
    }
    
    $anchorNumber2 = 100;
    echo("Get coordinates of anchor number $anchorNumber2\n");
    $anchorX2 = DOM::$anchor->get_x_by_number($anchorNumber2);
    $anchorY2 = DOM::$anchor->get_y_by_number($anchorNumber2);
    echo("Anchor coordinates: x = $anchorX2, y = $anchorY2\n");
    
    $moveX3 = $anchorX2 + 1;
    $moveY3 = $anchorY2 + 1;
    echo("Move mouse to anchor coordinates: x=$moveX3, y=$moveY3, time=$moveTime2 sec, jitter=$jitter2 px\n");
    $moveResult3 = SYSTEM::$mouse->move($moveX3, $moveY3, $isRelative2, $moveTime2, $jitter2);
    if ($moveResult3) {
        echo("Successfully moved mouse to second anchor\n");
    } else {
        echo("Failed to move mouse to second anchor\n");
    }
    
    // end
    echo("\n");
    
    // Quit
    WINDOW::$app->quit();
    ?>
    # Additional paths
    import sys
    sys.path.insert(0, '../../../Templates PY/')
    
    xhe_host = "127.0.0.1:7010"
    from xweb_human_emulator import *
    
    # начало
    echo("<hr><font color=blue>mouse.xxxxxxxxx</font><hr>")
    
    # 1 
    echo("1. Перейдем на полигон : ")
    echo(browser.navigate("https://rpa-bot.ru/wiki/poligon/button.html"),"<br>")
    
    # 2 
    echo("2. Переместим мышь на на кнопку за 2 секунды с дрожанием по пути в 5 пикселей : ")
    x=button.get_x_by_name("btn1f")
    y=button.get_y_by_name("btn1f")
    echo(x," ")
    echo(y," ")
    echo(mouse.move(x+1,y+1,false,2,5),"<br>")
    
    # 3 
    echo("3. Кликнем в текущей точке : ")
    echo(mouse.click(),"\n")
    
    # 4 
    echo("4. Перейдем на rpa-bot.ru/wiki/ : ")
    echo(browser.navigate("http://rpa-bot.ru/wiki/"),"<br>")
    
    # 5 
    echo("5. Переместим мышь на на 2 ссылки за 2 секунды с дрожанием по пути в 5 пикселей : ")
    x=anchor.get_x_by_number(111)
    y=anchor.get_y_by_number(111)
    echo(x," ")
    echo(y," ")
    echo(mouse.move(x+2,y+2,true,2,5)," ")
    sleep(7)
    
    x=anchor.get_x_by_number(101)
    y=anchor.get_y_by_number(101)
    echo(x," ")
    echo(y," ")
    echo(mouse.move(x+2,y+2,true,2,5))
    
    # конец
    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>mouse.move</font><hr>");
    				
    			// 1 шаг
    			echo("1. Перейдем в гугл : ");
    			echo(browser.navigate("http://www.google.ru")+"<br>");
    			
    			// 2 шаг
    			echo("2. Переместим мышь на на кнопку 'Мне повезет' за 2 секунды : ");
    			int x=btn.get_x_by_inner_text("Мне повезёт!");
    			int y=btn.get_y_by_inner_text("Мне повезёт!");
    			echo(mouse.move(x+1,y+1,false,5,10)+"<br>");			
    
    			// 3 шаг
    			echo("3. Кликнем в текущей точке : ");
    			echo(mouse.click());
    			
    			// конец
    			echo("\n\n");
    
    			app.quit();            
    	  }
    }
    // подключим функциональные объекты, если еще не подключен
    xhe_host="127.0.0.1:7010";
    echo=require("../../../Templates JS/init.js");
    
    // начало
    echo("<hr><font color=blue>mouse.move</font><hr>");
    
    // 1 шаг
    echo("1. Перейдем на полигон : ");
    echo(browser.navigate("https://rpa-bot.ru/wiki/poligon/button.html")+"<br>");
    
    // 2 шаг
    echo("2. Переместим мышь на на кнопку за 2 секунды с дрожанием по пути в 5 пикселей : ");
    var x=button.get_x_by_name("btn1f");
    var y=button.get_y_by_name("btn1f");
    echo(x+" "+y+" "+mouse.move(x+1,y+1,false,2,5)+"<br>");
    
    // 3 шаг
    echo("3. Кликнем в текущей точке : ");
    echo(mouse.click()+"\n");
    
    // 4 шаг
    echo("4. Перейдем на rpa-bot.ru/wiki/ : ");
    echo(browser.navigate("https://rpa-bot.ru/wiki/")+"<br>");
    
    // 5 шаг
    echo("5. Переместим мышь на на 2 ссылки за 2 секунды с дрожанием по пути в 5 пикселей : ");
    x=anchor.get_x_by_number(110);
    y=anchor.get_y_by_number(110);
    echo(x+" "+y+" "+mouse.move(++x,++y,true,2,5)+" ");
    x=anchor.get_x_by_number(100);
    y=anchor.get_y_by_number(100);
    echo(x+" "+y+" "+mouse.move(x+1,y+1,true,2,5));
    
    // конец
    echo("\n");
    
    // Quit
    app.quit();

    =============================================
    Mouse    Объекты    DOM  System  Vision  Web  Window        
    =============================================
    если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
    .