humanemulator.net — справка.
Продукт, демо и покупка — на
хуманэмулятор.рф
|
Демо
|
Купить
|
API
|
лог изменений
get_cell_by_pos_by_number
get_cell_by_pos_by_number($number,$pos,$as_html=false,$frame=-1); - получить текст ячейки (по ее позиции) в таблице с заданным номеромС версии 4.6.41 достпуно: можно передавать вложенные фреймы, принцип такой же самый, передается строка с номерами фреймов, разделенных : например при передаче "1:0:5" - будет выбран фрейм с номером 1 в нем под фрейм с номером 0 и в нем подфрейм с номером 5
С версии 7.0.38 достпуно: можно передавать "url=>XXX", тогда будет произведен поиск фрейма, который содержит заданнй src, или передавать "name=>XXX" - тогда будет поиск фрейма, по заданной части имени.
После отработки функция возвращает результат своей работы в скрипт :
Пример использования
<?php // Scenario: Get cell text by position number using XHETable class // Description: Demonstrates how to find a table by its number and retrieve text content from a specific cell using its position index // Classes used: DOM, XHETable, XHEBrowser, XHEApplication // Step: Connection to XHE API $xhe_host = "localhost:7010"; // Step: Path to init.php file if (!isset($path)) { // Path to init.php file for connecting to XHE API $path = "../../../Templates/init.php"; // Step: When connecting init.php file, all functionality of classes for working with XHE API will be available require($path); } // Step: Go to the polygon page if the page was not loaded earlier WEB::$browser->navigate(TEST_POLYGON_URL . "table.html"); echo "=== Example of using get_cell_by_pos_by_number ===\n\n"; // Example 1: Get cell by position 0 (first cell) echo "Example 1: Get cell by position 0 (first cell)\n\n"; // Step: Define arguments for get_cell_by_pos_by_number $tableNumber1 = 0; $position1 = 0; $asHtml1 = false; // Default is false $cell_by_pos = DOM::$table->get_cell_by_pos_by_number($tableNumber1, $position1, $asHtml1); echo "Cell text by position $position1: '" . $cell_by_pos . "'\n\n"; // Example 2: Get cell by position 5 (sixth cell) echo "Example 2: Get cell by position 5 (sixth cell)\n\n"; // Step: Define arguments for get_cell_by_pos_by_number $tableNumber2 = 0; $position2 = 5; $asHtml2 = false; // Default is false $cell_by_pos_5 = DOM::$table->get_cell_by_pos_by_number($tableNumber2, $position2, $asHtml2); echo "Cell text by position $position2: '" . $cell_by_pos_5 . "'\n\n"; // Example 3: Get cell by position as HTML echo "Example 3: Get cell by position as HTML\n\n"; // Step: Define arguments for get_cell_by_pos_by_number $tableNumber3 = 0; $position3 = 1; $asHtml3 = true; // As HTML $cell_html = DOM::$table->get_cell_by_pos_by_number($tableNumber3, $position3, $asHtml3); echo "Cell HTML by position $position3:\n" . $cell_html . "\n\n"; // Example 4: Get cell by position from table in frame echo "Example 4: Get cell by position from table in frame\n\n"; // Step: Define arguments for get_cell_by_pos_by_number $tableNumber4 = 0; $position4 = 2; $asHtml4 = false; // Default is false $frame4 = "0"; // Frame 0 $cell_frame = DOM::$table->get_cell_by_pos_by_number($tableNumber4, $position4, $asHtml4, $frame4); echo "Cell text by position $position4 from table in frame $frame4: '" . $cell_frame . "'\n\n"; // Example 5: Get cell by position from nested frames echo "Example 5: Get cell by position from nested frames\n\n"; // Step: Define arguments for get_cell_by_pos_by_number $tableNumber5 = 0; $position5 = 3; $asHtml5 = false; // Default is false $frame5 = "1:2:3"; // Nested frames $cell_nested = DOM::$table->get_cell_by_pos_by_number($tableNumber5, $position5, $asHtml5, $frame5); echo "Cell text by position $position5 from table in nested frames $frame5: '" . $cell_nested . "'\n\n"; // Example 6: Read multiple cells by positions echo "Example 6: Read multiple cells by positions\n\n"; // Step: Define positions to read $positions = [0, 1, 2, 3, 4]; // First 5 positions echo "Reading cells by positions:\n"; foreach ($positions as $position) { // Step: Define arguments for get_cell_by_pos_by_number inside loop $tableNumber_loop = 0; $asHtml_loop = false; $cell_value = DOM::$table->get_cell_by_pos_by_number($tableNumber_loop, $position, $asHtml_loop); echo "- Position $position: '" . $cell_value . "'\n"; } echo "\n"; // Example 7: Compare get_cell_by_number and get_cell_by_pos_by_number echo "Example 7: Compare get_cell_by_number and get_cell_by_pos_by_number\n\n"; // Step: Get table structure information $tableNumber_ex7 = 0; $row_count = DOM::$table->get_rows_by_number($tableNumber_ex7); $col_count = DOM::$table->get_cols_by_number($tableNumber_ex7); echo "Table structure: $row_count rows, $col_count columns\n"; // Step: Define arguments for comparison $pos_row = 1; $pos_col = 2; $calculated_position = ($pos_row * $col_count) + $pos_col; // This is an example, actual logic might differ $cell_by_number = DOM::$table->get_cell_by_number($tableNumber_ex7, $pos_row, $pos_col); $cell_by_pos = DOM::$table->get_cell_by_pos_by_number($tableNumber_ex7, $calculated_position); echo "\nComparison of results:\n"; echo "- get_cell_by_number (row $pos_row, column $pos_col): '" . $cell_by_number . "'\n"; echo "- get_cell_by_pos_by_number (position $calculated_position): '" . $cell_by_pos . "'\n"; echo "\n"; // Example 8: Search by positions using HTML output echo "Example 8: Search by positions using HTML output\n\n"; // Step: Define positions to read $positions_ex8 = [0, 1, 2]; echo "Reading cells by positions as HTML:\n"; foreach ($positions_ex8 as $position) { // Step: Define arguments for get_cell_by_pos_by_number inside loop $tableNumber_loop_ex8 = 0; $asHtml_loop_ex8 = true; $cell_html = DOM::$table->get_cell_by_pos_by_number($tableNumber_loop_ex8, $position, $asHtml_loop_ex8); echo "- Position $position (HTML):\n" . $cell_html . "\n\n"; } // Example 9: Check position existence before reading echo "Example 9: Check position existence before reading\n\n"; // Step: First get total number of cells $tableNumber_ex9 = 0; $total_cells = DOM::$table->get_cells_by_number($tableNumber_ex9); echo "Total cells in table: $total_cells\n"; // Step: Check different positions $test_positions = [0, 5, 10, 15]; foreach ($test_positions as $position) { // Step: Define arguments for get_cell_by_pos_by_number inside loop $tableNumber_loop_ex9 = 0; $asHtml_loop_ex9 = false; $cell_value = DOM::$table->get_cell_by_pos_by_number($tableNumber_loop_ex9, $position, $asHtml_loop_ex9); if ($cell_value !== '') { echo "Position $position: '$cell_value'\n"; } else { echo "Position $position: empty cell or position doesn't exist\n"; } } echo "\n"; echo "All get_cell_by_pos_by_number examples completed!\n"; // Step: Stop work 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>table.xxxxxxxxx</font><hr>") # 1 echo("1. Перейдем на полигон : ") echo(browser.navigate("https://rpa-bot.ru/wiki/poligon/table.html"),"<br>") # 2 echo("2. Получим содержимое ячейки (50) у элемента с 0 номером как html : ") echo(table.get_cell_by_pos_by_number(0,50,true),"<br>") # 3 echo("3. Получим содержимое ячейки (50) у элемента с 0 номером как текст : ") echo(table.get_cell_by_pos_by_number(0,50,false),"<br>") # 4 echo("4. Получим содержимое ячейки у несуществующего элемента : ") if not table.get_cell_by_pos_by_number(100500,50,false): echo("нет такого элемента<br>") # 5 echo("5. Получим содержимое несуществующей ячейки у элемента : ") if not table.get_cell_by_pos_by_number(0,100500,false): echo("нет такой ячейки<br>") # 6 echo("6. Получим содержимое ячейки (50) у элемента с 0 номером как текст в нулевом фрейме : ") echo(table.get_cell_by_pos_by_number(0,50,true,0),"<br>") # 7 echo("7. Получим содержимое ячейки у несуществующего элемента в нулевом номере : ") if not table.get_cell_by_pos_by_number(100500,50,true,0): echo("нет такого элемента<br>") # 8 echo("8. Получим содержимое ячейки у элемента в несуществующем фрейме : ") if not table.get_cell_by_pos_by_number(0,50,false,5): echo("нет такого фрейма<br>") # конец 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>table.get_cell_by_pos_by_number</font><hr>"); // 1 шаг echo("1. Перейдем на полигон : "); echo(browser.navigate("rpa-bot.ru/wiki/poligon/table.html")+"<br>"); // 2 шаг echo("2. Получим содержимое ячейки (50) у элемента с 0 номером как хтмл : "); echo(table.get_cell_by_pos_by_number(0,50,true)+"<br>"); // 3 шаг echo("3. Получим содержимое ячейки (50) у элемента с 0 номером как текст : "); echo(table.get_cell_by_pos_by_number(0,50,false)+"<br>"); // 4 шаг echo("4. Получим содержимое ячейки у несуществующего элемента : "); if (table.get_cell_by_pos_by_number(100500,50,false)=="false") echo("нет такого элемента<br>"); // 5 шаг echo("5. Получим содержимое несуществующей ячейки у элемента : "); if (table.get_cell_by_pos_by_number(0,100500,false)=="false") echo("нет такой ячейки<br>"); // 6 шаг echo("6. Получим содержимое ячейки (50) у элемента с 0 номером как текст в нулевом фрейме : "); echo(table.get_cell_by_pos_by_number(0,50,true,"0")+"<br>"); // 7 шаг echo("7. Получим содержимое ячейки у несуществующего элемента в нулевом номере : "); if (table.get_cell_by_pos_by_number(100500,50,true,"0")=="false") echo("нет такого элемента<br>"); // 8 шаг echo("8. Получим содержимое ячейки у элемента в несуществующем фрейме : "); if (table.get_cell_by_pos_by_number(0,50,false,"5")=="false") echo("нет такого фрейма<br>"); // конец echo("\n\n"); app.quit(); } }
// подключим функциональные объекты, если еще не подключен xhe_host="127.0.0.1:7010"; echo=require("../../../Templates JS/init.js"); // начало echo("<hr><font color=blue>table.get_cell_by_pos_by_number</font><hr>"); // 1 шаг echo("1. Перейдем на полигон : "); echo(browser.navigate("https://rpa-bot.ru/wiki/poligon/table.html")+"<br>"); // 2 шаг echo("2. Получим содержимое ячейки (50) у элемента с 0 номером как html : "); echo(table.get_cell_by_pos_by_number(0,50,true)+"<br>"); // 3 шаг echo("3. Получим содержимое ячейки (50) у элемента с 0 номером как текст : "); echo(table.get_cell_by_pos_by_number(0,50,false)+"<br>"); // 4 шаг echo("4. Получим содержимое ячейки у несуществующего элемента : "); if (!table.get_cell_by_pos_by_number(100500,50,false)) echo("нет такого элемента<br>"); // 5 шаг echo("5. Получим содержимое несуществующей ячейки у элемента : "); if (!table.get_cell_by_pos_by_number(0,100500,false)) echo("нет такой ячейки<br>"); // 6 шаг echo("6. Получим содержимое ячейки (50) у элемента с 0 номером как текст в нулевом фрейме : "); echo(table.get_cell_by_pos_by_number(0,50,true,0)+"<br>"); // 7 шаг echo("7. Получим содержимое ячейки у несуществующего элемента в нулевом номере : "); if (!table.get_cell_by_pos_by_number(100500,50,true,0)) echo("нет такого элемента<br>"); // 8 шаг echo("8. Получим содержимое ячейки у элемента в несуществующем фрейме : "); if (!table.get_cell_by_pos_by_number(0,50,false,5)) echo("нет такого фрейма<br>"); // конец echo("\n"); // Quit app.quit();
=============================================
Table Объекты DOM System Vision Web Window
=============================================
Если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум.