• EN
    RU

element/get_by_js

get_by_js(js, add_file, frame)

Данная команда позволяет получить интерфейс элемента, используя JS для поиска. в коде должна быть реализована функция JS_rBot_GetElement, которая производит поиск элемента, используя JS по заданным критериям.

Команда на вход принимает параметры
  • js – код функции Jav * a Script: JS_rBot_GetElement, которая получает нужный элемент
  • add_file – файл из которого будет загружен дополнительный код JS
  • frame - номер фрейма, в котором мы ищем элемент. Номер фрейма в котором находится нужный вам элемент можно узнать из инспектора задач, контекстного меню и панели списка элементов. Можно передавать вложенные фреймы, принцип такой же самый. Можно передавать "url=>XXX", тогда будет произведен поиск фрейма, который содержит заданный src, или передавать "name=>XXX" - тогда будет поиск фрейма, по заданной части имени

После отработки команда возвращает результат своей работы в робот
  • DOM интерфейс элемента – объект позволяющий быстро выполнять любые операции с найденным элементом, тип возвращаемого значения rBotInterface




Примеры использования (py)

# 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>element.xxxxxxxxx</font><hr>")
 
# 1 
echo("1. Перейдем на полигон : ")
browser.set_wait_params(10,1)
echo(browser.navigate("http://www.bigfozzy.com"),"<br>")
 
# 2 
echo("2. Получить элемент по JS функции (имя функции долно быть JS_XHE_GetElement ) : ")
obj=element.get_by_js("function JS_XHE_GetElement(){var elm=document.querySelector('.menu_lnk'); return elm;}")
echo(obj.get_x()," "+str(obj.get_y()))
 
# конец
echo("<hr><br>")
 
# Quit
app.quit()


Примеры использования (cs)

#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="127.0.0.1:7033";
			InitXHE();
 
			// начало
			echo("<hr><font color=blue>element.get_all_by_tag</font><hr>");
 
			// 1 
			echo("1. Перейдем на полигон : ");
			browser.set_wait_params(10,1);
			echo(browser.navigate("http://www.bigfozzy.com")+"<br>");
 
			// 2 
			echo("2. Получить элемент по JS функции (имя функции долно быть JS_XHE_GetElement ) : ");
			XHEInterface obj=element.get_by_js("function JS_XHE_GetElement(){var elm=document.querySelector('.menu_lnk'); return elm;}");
			echo(obj.get_x()+" "+obj.get_y());
 
			// конец
			echo("<hr><br>");
 
			app.quit();            
	  }
}


Примеры использования (php)

<?php $xhe_host = "127.0.0.1:7094";
 
// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
  $path="../../../Templates/init.php";
require($path);
$path="../../../Templates/simple_html_dom.php";
require($path);
 
// начало
echo "<hr><font color=blue>anchor->".basename (__FILE__)."</font><hr>";
 
// 1 
echo "1. Перейдем на полигон : ";
$browser->set_wait_params(10,1);
echo $browser->navigate("http://bigfozzy.com")."<br>";
 
// 2 
echo "2. Получить элемент по JS функции (имя функции долно быть JS_XHE_GetElement ) : ";
$obj=$element->get_by_js("function JS_XHE_GetElement(){var elm=document.querySelector('.menu_lnk'); return elm;}");
echo $obj->get_x()." ".$obj->get_y();
 
// конец
echo "<hr><br>";
 
// Quit
$app->quit();
?>