4.0.14

сообщение о выходе новых версий и других изменениях на сайте
Ответить
Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2623
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

4.0.14

Сообщение bigfozzy » 21 ноя 2010, 23:50

- при неправильной обработке комманд от пхп теперь программа выводит информацию в окно отладки
- в команду app->run_as_php добавлены параметры $show и $params
- добавлен объект firebird c функциями
  • - set_db
    - exe_sql
    - create_table
    - insert_record
    - get_record
    - get_count_rows
    - get_colums
    - get_list_tabels
- добавлена возможность посылать события мыши в окно flash player для этого были добавлены следующие функции в объект mouse
  • - send_right_click_to_flash_player
    - send_click_to_flash_player
    - send_mouse_move_to_flash_player
    - get_mouse_pos_to_flash_player
- исправлена функция объекта browser check_connection
- добавлена дополнительная чистка куков с помощью команды "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2"

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Re: 4.0.14

Сообщение igvard » 22 ноя 2010, 00:57

  • - send_right_click_to_flash_player
    - send_click_to_flash_player
    - send_mouse_move_to_flash_player
    - get_mouse_pos_to_flash_player
По поводу данных функций напишу более подробно.
Данные функции посылают сообщение мыши окну adobe flash player. Это значит что заданное окно плеера без всякого участия реального курсора мыши будет получать клики мышки или перемещение её курсора. То есть можно без проблем использовать данные функции в многопоке.

- send_right_click_to_flash_player - клик правой кнопки мыши
- send_click_to_flash_player - клик левой кнопки мыши
- send_mouse_move_to_flash_player - перемещение курсора мыши
- get_mouse_pos_to_flash_player - функция конвертирования или получения координат относительно окна adobe flash player.

функции с параметрами имеют следующий вид :

Код: Выделить всё

$mouse->send_click_to_flash_player($x,$y,$flash_num,$bUseFlashXY=false);
$mouse->send_mouse_move_to_flash_player($x,$y,$flash_num,$bUseFlashXY=false);
$mouse->send_right_click_to_flash_player($x,$y,$flash_num,$bUseFlashXY=false);
$mouse->get_mouse_pos_to_flash_player($flash_num,$x="",$y="");
$x и $y - координаты
$flash_num - номер flash player-a на странице.
$bUseFlashXY - использовать координаты браузера (false) или координаты окна flash player-a(true). По умолчанию false.

Координаты окна flash player-a можно получать используя функцию $mouse->get_mouse_pos_to_flash_player($flash_num,$x="",$y=""); если $x="" и $y="", то функция получает координаты текущего положения курсора мыши. Если эти параметры заданны то функция конвертирует их относительно заданного окна плеера.

Советую использовать координаты окна flash player-a так как они не изменяются при изменениях размера страницы или после прокрутки страницы или если окно плеера не видно при переходе на страницу, если использовать координаты браузера то это надо учитывать.

По поводу определения номера нужного окна - отсчёт окон как и для всех остальных элементов программы начинается с 0. Иногда на странице может быть несколько плееров и причём бывают и скрытые. В таких ситуациях для определения нужного окна советую использовать send_right_click_to_flash_player и номер плеера. Только тогда когда вы увидите контекстное меню именно в окне нужного вам плеера, значит вы правильно определили номер нужного вам окна.

пример скрипта:

Код: Выделить всё

<?php

$xhe_host ="127.0.0.1:7010";

// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

// перейти на сайт
$browser->navigate('http://www.humanemulator.info/');
$browser->wait_for(60,1);
// конвертируем координаты браузера (из панели состояния программы)
// в коодинаты окна плеера - перед этим прокрутили браузер до окна плеера 
// и навели курсор на треугольник - старт ролика.
echo $mouse->get_mouse_pos_to_flash_player(0,322,155);
// клик правой мыши 
$mouse->send_right_click_to_flash_player(214,155,0,true);
// клик левой мыши - старт ролика
$mouse->send_click_to_flash_player(214,155,0,true);

// Quit
$app->quit();
?>
Все функции возвращают true кроме $mouse->get_mouse_pos_to_flash_player, которая возвращает координаты в виде "234,456".

satih
Сообщения: 270
Зарегистрирован: 31 мар 2010, 23:44

Re: 4.0.14

Сообщение satih » 22 ноя 2010, 01:03

респект, теперь можно накручивать ютуб :)
bigfozzy писал(а):- добавлена дополнительная чистка куков с помощью команды "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2"
будет работать нормально с МТ ? И если будет время, решите плиз проблему с куками которую описывал тут, пока она не решена

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Re: 4.0.14

Сообщение igvard » 22 ноя 2010, 01:09

- добавлена дополнительная чистка куков с помощью команды "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2"

В функцию чистки куков добавили вызов этой команды.

xyu
Сообщения: 91
Зарегистрирован: 06 ноя 2010, 17:47

Re: 4.0.14

Сообщение xyu » 22 ноя 2010, 23:29

igvard писал(а):- добавлена дополнительная чистка куков с помощью команды "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2"

В функцию чистки куков добавили вызов этой команды.
Куда добавили, в скрипты? Вызов не происходит

xyu
Сообщения: 91
Зарегистрирован: 06 ноя 2010, 17:47

Re: 4.0.14

Сообщение xyu » 22 ноя 2010, 23:32

bigfozzy писал(а):- добавлена возможность посылать события мыши в окно flash player для этого были добавлены следующие функции в объект mouse
Круто! Добавьте еще для окон флэш кнопок, т.е. для всех остальных фэлш объектов
Последний раз редактировалось xyu 23 ноя 2010, 00:45, всего редактировалось 1 раз.

xyu
Сообщения: 91
Зарегистрирован: 06 ноя 2010, 17:47

Re: 4.0.14

Сообщение xyu » 22 ноя 2010, 23:52

igvard писал(а):- добавлена дополнительная чистка куков с помощью команды "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2"

В функцию чистки куков добавили вызов этой команды.
Относительно вопроса с localStorage, если рассмотреть работу одной копии хумана, локально ее, сейчас его очищает набор команд ClearMyTracksByProcess + app->restart

что не очень удобно, сделайте функцию browser->recreate() подобно полному перезапуску IE без рестарта хумана
Последний раз редактировалось xyu 23 ноя 2010, 03:40, всего редактировалось 1 раз.

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Re: 4.0.14

Сообщение igvard » 23 ноя 2010, 02:37

xyu писал(а):
bigfozzy писал(а):- добавлена возможность посылать события мыши в окно flash player для этого были добавлены следующие функции в объект mouse
Круто! Добавьте еще для окон флэш кнопок, т.е. для всех остальных фэлш объектов
Эти функции тестировали так же на одной из flash игрух в "моём мире" - в ней тоже нажимались кнопочки, чеки и менюшки.

xyu
Сообщения: 91
Зарегистрирован: 06 ноя 2010, 17:47

Re: 4.0.14

Сообщение xyu » 23 ноя 2010, 03:41

igvard писал(а):
xyu писал(а):
bigfozzy писал(а):- добавлена возможность посылать события мыши в окно flash player для этого были добавлены следующие функции в объект mouse
Круто! Добавьте еще для окон флэш кнопок, т.е. для всех остальных фэлш объектов
Эти функции тестировали так же на одной из flash игрух в "моём мире" - в ней тоже нажимались кнопочки, чеки и менюшки.
Не видит кнопку browse

Код: Выделить всё

<?php

$xhe_host ="127.0.0.1:7014";

require("../Templates/xweb_human_emulator.php");

$browser->navigate('http://imageshack.us/');
$browser->wait_for(60,1);

$mouse->send_right_click_to_flash_player(0,0,0,true);

$app->quit();

?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Re: 4.0.14

Сообщение igvard » 23 ноя 2010, 15:54

xyu писал(а):
Не видит кнопку browse

Код: Выделить всё

<?php

$xhe_host ="127.0.0.1:7014";

require("../Templates/xweb_human_emulator.php");

$browser->navigate('http://imageshack.us/');
$browser->wait_for(60,1);

$mouse->send_right_click_to_flash_player(0,0,0,true);

$app->quit();

?>

На этой странице нет окна MacromediaFlashPlayerActiveX. Сама кнопка создается с помощью кода:

Код: Выделить всё

<EMBED id=SWFUpload_0 

class=swfupload height=20 type=application/x-shockwave-flash 

pluginspage=http://www.macromedia.com/shockwave/download/ width=78 

src=swfupload/swfupload.swf 

flashvars="movieName=SWFUpload_0&uploadURL=%2F&useQueryString=false&requeueOnError=true&httpSuccess=&assumeSuccessTimeout=30&params=PHPSESSID%3D&filePostName=Filedata&fileTypes=*.jpg%3B*.jpeg%3B*.bmp%3B*.gif%3B*.png%3B*.tif%3B*.tiff%3B*.swf%3B*.ico%5E*.wmv%3B*.avi%3B*.mp4%3B*.mov%3B*.3gpp%3B*.mkv%5E*.*&fileTypesDescription=Web%20Image%20Files%5EVideo%20Files%5EAll%20Files&fileSizeLimit=500%20MB&fileUploadLimit=1000&fileQueueLimit=1000&debugEnabled=false&buttonImageURL=%2Fswfupload%2Fbtn-browse.png&buttonWidth=78&buttonHeight=20&buttonText=&buttonTextTopPadding=0&buttonTextLeftPadding=5&buttonTextStyle=color%3A%20%23000000%3B%20font-size%3A%2016pt%3B&buttonAction=-110&buttonDisabled=false&buttonCursor=-2" 

allowScriptAccess="always" menu="false" quality="high" loop="false" 

movie="swfupload/swfupload.swf" wmode="transparent" jQuery1290516032987="39">
поэтому функция и не срабатывает... попробуем решить проблему работы с такими элементами в ближайшее время.

ozware
Сообщения: 19
Зарегистрирован: 05 окт 2010, 16:52

Re: 4.0.14

Сообщение ozware » 23 ноя 2010, 15:58

bigfozzy писал(а):- при неправильной обработке комманд от пхп теперь программа выводит информацию в окно отладки
это работает, лог выводится в окно отладки, но при этом при возникновении ошибки выскакивает большой message box c Yes/No, где говорится, что в XHE какой-то exception
после выскакивания message box'a XHE останавливается пока я сам руками не нажму Yes или No, после чего XHE продолжает дальше работать согласно написанному php-скрипту

можно как-то это исправить?
чтобы exception вываливался, но программа продолжала дальше работать

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Re: 4.0.14

Сообщение igvard » 01 дек 2010, 17:30

xyu писал(а): Не видит кнопку browse

Код: Выделить всё

<?php

$xhe_host ="127.0.0.1:7014";

require("../Templates/xweb_human_emulator.php");

$browser->navigate('http://imageshack.us/');
$browser->wait_for(60,1);

$mouse->send_right_click_to_flash_player(0,0,0,true);

$app->quit();

?>
Для подобных элементов в версию 4.0.15 добавлен объект embed со следующими функциями
  • $embed->click_by_name($name,$x=-1,$y=-1,$frame=-1);
    $embed->click_by_number($number,$x=-1,$y=-1,$frame=-1);
    $embed->click_by_src($src,$x=-1,$y=-1,$exactly="true",$frame=-1);
    $embed->click_by_attribute($attr_name,$attr_value,$x=-1,$y=-1,$exactly="true",$frame=-1);
    $embed->get_all_attributes_by_name($name,$frame=-1);
    $embed->get_all_attributes_by_number($number,$frame=-1);
    $embed->get_all_attributes_by_src($src,$exactly="true",$frame=-1);
    $embed->get_attribute_by_name($name,$name_atr,$frame=-1);
    $embed->get_attribute_by_number($number,$name_atr,$frame=-1);
    $embed->get_attribute_by_src($src,$name_atr,$exactly="true",$frame=-1);
    $embed->get_count($frame=-1);
    $embed->get_height_by_name($name,$frame=-1);
    $embed->get_height_by_number($number,$frame=-1);
    $embed->get_height_by_src($src,$exactly="true",$frame=-1);
    $embed->get_width_by_name($name,$frame=-1);
    $embed->get_width_by_number($number,$frame=-1);
    $embed->get_width_by_src($src,$exactly="true",$frame=-1);
может будут ещё предложения по функционалу данного объекта?

Ответить