• EN
    РУ

canvas/draw_image_by_number

draw_image_by_number($number,$path,$frame=-1); - данная функция используется для рисование картинки на элементе, находя его по заданному номеру.
Функция на вход принимает параметры:
  • $number – номер по которому мы находим необходимый нам элемент на странице (int) . Номера элементов начинаются с 0 и для элементов разного типа своя нумерация. Чтобы узнать номер элемента, можно воспользоваться либо инспектором элементов, либо контекстным меню, либо посмотреть его в списке элементов.
  • $path – путь к картинке, которую надо нарисовать на элементе.
  • $frame – номер фрейма, в котором мы ищем элемент (string). Номера фреймов начинаются с нуля. По умолчанию -1 - элемент находится не во фрейме. Номер фрейма в котором находится нужный вам элемент можно узнать из инспектора задач, контекстного меню и панели списка элементов.
    С версии 4.6.41 доступно: можно передавать вложенные фреймы, принцип такой же самый, передается строка с номерами фреймов, разделенных : например при передаче "1:0:5" - будет выбран фрейм с номером 1 в нем под фрейм с номером 0 и в нем подфрейм с номером 5
    С версии 7.0.38 доступно: можно передавать "url=>XXX", тогда будет произведен поиск фрейма, который содержит заданный src, или передавать "name=>XXX" - тогда будет поиск фрейма, по заданной части имени.

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




Пример использования draw_image_by_number (PHP):

<?php $xhe_host = "127.0.0.1:7024";
 
// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
  $path="../../../Templates/init.php";
require($path);
 
// начало
echo "<hr><font color=blue>checkbox->".basename (__FILE__)."</font><hr>";
 
// 1 
echo "1. Перейдем на полигон : ";
echo $browser->navigate("http://rbot.biz-apps.ru/poligon/canvas.html")."<br>";
 
// 2 
echo "2. Отрисуем картинку на элменте по номеру (нарисуем на холсте) : ";
echo $canvas->draw_image_by_number(0,"test/canvas_fp.png")."\n";
 
// 3 
echo "3. Отрисуем картинку на несуществующем элементе : ";
if( !$canvas->draw_image_by_number(100500,"test/canvas_fp.png"));
  echo  "нет такого элемента<br>";
 
// 4 
echo "4. Отрисуем картинку на элементе с 1 номером в нулевом фрейме : ";
echo $canvas->draw_image_by_number(1,"test/canvas_fp.png","0")."\n";
sleep(2);
 
// 5 
echo "5. Отрисуем картинку на не существующем элементе в нулевом фрейме: ";
if( !$canvas->draw_image_by_number(100500,"test/canvas_fp.png",0))
  echo  "нет такого элемента<br>";
 
// 6 
echo "6. Отрисуем картинку на элементе в несуществующем фрейме: ";
if( !$canvas->draw_image_by_number(7,"element.tagName",100500))
  echo  "нет такого фрейма<br>";
 
 
// конец
echo "<hr><br>";
 
// Quit
$app->quit();
?>

Пример использования draw_image_by_number (C#):

#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:7024";
			InitXHE();
 
			// начало
			echo("<hr><font color=blue>table.export_to_csv</font><hr>");
 
			// 1 шаг
			echo("1. Перейдем на полигон : ");
			echo(browser.navigate("www.rbot.biz-apps.ru/poligon/table.html")+"<br>");
 
			// 1 
			echo("1. Перейдем на полигон : ");
			echo(browser.navigate("http://rbot.biz-apps.ru/poligon/canvas.html")+"<br>");
 
			// 2 
			echo("2. Отрисуем картинку на элменте по номеру (нарисуем на холсте) : ");
			echo(canvas.draw_image_by_number(0,"test/canvas_fp.png")+"\n");
 
			// 3 
			echo("3. Отрисуем картинку на несуществующем элементе : ");
			if(!canvas.draw_image_by_number(100500,"test/canvas_fp.png"));
			  echo("нет такого элемента<br>");
 
			// 4 
			echo("4. Отрисуем картинку на элементе с 1 номером в нулевом фрейме : ");
			echo(canvas.draw_image_by_number(1,"test/canvas_fp.png","0")+"\n");
			sleep(2);
 
			// 5 
			echo("5. Отрисуем картинку на не существующем элементе в нулевом фрейме: ");
			if(!canvas.draw_image_by_number(100500,"test/canvas_fp.png","0"))
			  echo("нет такого элемента<br>");
 
			// 6 
			echo("6. Отрисуем картинку на элементе в несуществующем фрейме: ");
			if(!canvas.draw_image_by_number(7,"element.tagName","100500"))
			  echo("нет такого фрейма<br>");
 
			// конец
			echo("<hr><br>");
 
			app.quit();            
	  }
}

Пример использования draw_image_by_number (Python):

# Additional paths
import sys
sys.path.insert(0, '../../../Templates PY/')
 
xhe_host = "127.0.0.1:7024"
from xweb_human_emulator import *
 
# начало
echo("<hr><font color=blue>textarea.xxxxxxxxx</font><hr>")
 
# 1 
echo("1. Перейдем на полигон : ");
echo(browser.navigate("http://rbot.biz-apps.ru/poligon/canvas.html"),"<br>");
 
# 2 
echo("2. Отрисуем картинку на элменте по номеру (нарисуем на холсте) : ");
echo(canvas.draw_image_by_number(0,"test/canvas_fp.png"),"\n");
 
# 3 
echo("3. Отрисуем картинку на несуществующем элементе : ");
if not canvas.draw_image_by_number(100500,"test/canvas_fp.png"):
  echo("нет такого элемента<br>");
 
# 4 
echo("4. Отрисуем картинку на элементе с 1 номером в нулевом фрейме : ");
echo(canvas.draw_image_by_number(1,"test/canvas_fp.png","0"),"\n");
sleep(2);
 
# 5 
echo("5. Отрисуем картинку на не существующем элементе в нулевом фрейме: ");
if not canvas.draw_image_by_number(100500,"test/canvas_fp.png","0"):
  echo("нет такого элемента<br>");
 
# 6 
echo("6. Отрисуем картинку на элементе в несуществующем фрейме: ");
if not canvas.draw_image_by_number(7,"element.tagName","100500"):
  echo("нет такого фрейма<br>");
 
# конец
echo("<hr><br>")
 
# Quit
app.quit()

Пример использования draw_image_by_number (JS):

// подключим объект для управления эмулятором, если еще не подключен
xhe_host="127.0.0.1:7024";
echo=require("../../../Templates JS/init.js");
 
// начало
echo("<hr><font color=blue>textarea.get_cols_by_name</font><hr>");
 
// 1 
echo("1. Перейдем на полигон : ");
echo(browser.navigate("http://rbot.biz-apps.ru/poligon/canvas.html")+"<br>");
 
// 2 
echo("2. Отрисуем картинку на элменте по номеру (нарисуем на холсте) : ");
echo(canvas.draw_image_by_number(0,"test/canvas_fp.png")+"\n");
 
// 3 
echo("3. Отрисуем картинку на несуществующем элементе : ");
if(!canvas.draw_image_by_number(100500,"test/canvas_fp.png"));
  echo("нет такого элемента<br>");
 
// 4 
echo("4. Отрисуем картинку на элементе с 1 номером в нулевом фрейме : ");
echo(canvas.draw_image_by_number(1,"test/canvas_fp.png","0")+"\n");
app.sleep(2);
 
// 5 
echo("5. Отрисуем картинку на не существующем элементе в нулевом фрейме: ");
if(!canvas.draw_image_by_number(100500,"test/canvas_fp.png","0"))
  echo("нет такого элемента<br>");
 
// 6 
echo("6. Отрисуем картинку на элементе в несуществующем фрейме: ");
if(!canvas.draw_image_by_number(7,"element.tagName","100500"))
  echo("нет такого фрейма<br>");
 
// конец
echo("<hr><br>");
 
// Quit
app.quit();