получить x координату заданного изображения на странице
получить x координату заданного изображения на странице
Здравствуйте.
Win7pro, HE 4.9.8
Видимо не понимаю как это работает.
$browser->navigate('https://site.com/');
$browser->wait_for(120, 1);
sleep(1);
$x = $webpage->get_x_in_webpage_picture(...);
$y = $webpage->get_y_in_webpage_picture(...);
Загружаю страничку Мозилой (так же IE) делаю снимок экрана. Со снимка вырезаю фотошопом нужный элемент и сохраняю как bmp с глубиной 24. Paint (не смейтесь) тоже пробывал.
$x, $y отдаёт левый верхний угол страницы -1, -1
Нерепробовал разные браузеры, редакторы, картинки, флэш. Заколебался...
Путь к изображению правильный - НЕ ошибки не пишет. Страница загружается полностью. Пробовал на разных сайтах. Некаких элементов типа окон или ещё какой фигни на страничках в момент работы функции нет.
Что делаю не так?
Должно быть найдено изображение не зависимо от того как оно сформировано. Правильно? Хоть это картинка, флэш или текст. HTML роли не играет. С снимка можно вырезать что хочешь.
Помогите, пожалуйста. В чем может быть дело?
Win7pro, HE 4.9.8
Видимо не понимаю как это работает.
$browser->navigate('https://site.com/');
$browser->wait_for(120, 1);
sleep(1);
$x = $webpage->get_x_in_webpage_picture(...);
$y = $webpage->get_y_in_webpage_picture(...);
Загружаю страничку Мозилой (так же IE) делаю снимок экрана. Со снимка вырезаю фотошопом нужный элемент и сохраняю как bmp с глубиной 24. Paint (не смейтесь) тоже пробывал.
$x, $y отдаёт левый верхний угол страницы -1, -1
Нерепробовал разные браузеры, редакторы, картинки, флэш. Заколебался...
Путь к изображению правильный - НЕ ошибки не пишет. Страница загружается полностью. Пробовал на разных сайтах. Некаких элементов типа окон или ещё какой фигни на страничках в момент работы функции нет.
Что делаю не так?
Должно быть найдено изображение не зависимо от того как оно сформировано. Правильно? Хоть это картинка, флэш или текст. HTML роли не играет. С снимка можно вырезать что хочешь.
Помогите, пожалуйста. В чем может быть дело?
Re: получить x координату заданного изображения на странице
Хоть какие-то подсказки, чтоб оттестировать. У меня идеи кончились.
А может эта функция не работает? Может я что-то пропустил в сообщениях.
Отпишитесь, пожалуйста, кто этот функционал использует в работе.
А может эта функция не работает? Может я что-то пропустил в сообщениях.
Отпишитесь, пожалуйста, кто этот функционал использует в работе.
Re: получить x координату заданного изображения на странице
Добрый день.
Попробуйте сделать следующим образом:
1.Для этого надо сделать скриншот через webpage->print_screen.
2.Открыть его в Paint
3.Вырезать нужный кусок скриншота - и сохранить его как 24-х разрядное в формате bmp.
4.Затем этот файл подать на вход в функцию и она найдет его координаты.
Попробуйте сделать следующим образом:
1.Для этого надо сделать скриншот через webpage->print_screen.
2.Открыть его в Paint
3.Вырезать нужный кусок скриншота - и сохранить его как 24-х разрядное в формате bmp.
4.Затем этот файл подать на вход в функцию и она найдет его координаты.
Re: получить x координату заданного изображения на странице
Вот какая странность. Полный код:
Вот что получается. Возвращает 1. Но картинки на столе нет. Расширения и пути пробовал разные.
Что может быть?
Код: Выделить всё
<?php
/**
* WEBPAGE_PICTURE test
*/
$xhe_host = "127.0.0.1:7000";
require ("../Templates/xweb_human_emulator.php");
define('PATH_BUTTONS','C:\\Users\\WWSgast\\Desktop\\');
$browser->navigate('https://www.google.de/?gws_rd=ssl');
$browser->wait_for(120, 1);
sleep(1);
echo $webpage->print_screen(PATH_BUTTONS."scr.bmp").'<br>';
$app->quit();
?>
Что может быть?
Re: получить x координату заданного изображения на странице
Судя по справке функция ищет только картинку, если это другое то не сработает. Картинку находит, пробовал. Я так думаю что то что вы хотите простой функцией не реализовать, по крайней мере я не понимаю как.
Я делал так: $element(frame, div, etc...)->screenshot_by_number, дальше сравнивал имеджиком с оригиналом, можно ним же резать куски и сравнивать их. Имеджик хорошая вещь, работает быстро. Так как вы хотите не получиться.
Я делал так: $element(frame, div, etc...)->screenshot_by_number, дальше сравнивал имеджиком с оригиналом, можно ним же резать куски и сравнивать их. Имеджик хорошая вещь, работает быстро. Так как вы хотите не получиться.
Re: получить x координату заданного изображения на странице
Спасибо за подсказку, Олег.
Сдвинулся с мёртвой точки. Стартовая google
https://www.google.de/?gws_rd=ssl
Картинка 272х95
div id="hplogo"
сработало. Получил картинку почему-то 980х765.
Сдвинулся с мёртвой точки. Стартовая google
https://www.google.de/?gws_rd=ssl
Картинка 272х95
div id="hplogo"
Код: Выделить всё
$div->screenshot_by_attribute(PATH_BUTTONS."scr.bmp","id","hplogo",true);
- Вложения
-
- scr.png (3.16 КБ) 670 просмотров
Re: получить x координату заданного изображения на странице
вырезал мишень
- Вложения
-
- Untitled-1.png (1.93 КБ) 670 просмотров
Re: получить x координату заданного изображения на странице
Код: Выделить всё
$x = $webpage->get_x_in_webpage_picture(PATH_BUTTONS."1.bmp");
$y = $webpage->get_y_in_webpage_picture(PATH_BUTTONS."1.bmp");
$mouse->move($x,$y,2,2);
Re: получить x координату заданного изображения на странице
странно, что не работает
Ёмоё не хочеться самому изобретать велосипед!
Код: Выделить всё
$webpage->print_screen("scr.bmp");
Re: получить x координату заданного изображения на странице
А шо делать? Я пользовал примерно такое $result = $image1->compareImages($image2, Imagick::METRIC_MEANSQUAREERROR);
Наверное еще зависит от текущих задач, имеджик для людей сделан, там все просто и очень функционально, если б еще метаданные умел писать было бы счастье.
Вопрос не по теме, может кто знает вменяемый метод записи метаданных в джипеги?
Наверное еще зависит от текущих задач, имеджик для людей сделан, там все просто и очень функционально, если б еще метаданные умел писать было бы счастье.
Вопрос не по теме, может кто знает вменяемый метод записи метаданных в джипеги?
Re: получить x координату заданного изображения на странице
В последней версии примеры выполнения функций обновлены, все вроде работает. Также добавлены новые функции по работе с картинками.
PS: если что нужно по картинкам еще - пишите.
PS: если что нужно по картинкам еще - пишите.
Re: получить x координату заданного изображения на странице
Через Exiftool попробуйте, запросы из скрипта удобней слать с помощью shell_exec ()oleg88889 писал(а):Вопрос не по теме, может кто знает вменяемый метод записи метаданных в джипеги?
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7
Re: получить x координату заданного изображения на странице
Собственно базовый функционал по картинкам я у себя не могу освоить. Не работает.bigfozzy писал(а): PS: если что нужно по картинкам еще - пишите.
Я почему выше показал код? Там пара строчек и не понятно где ошибки и почему не срабатывает.
Офигенно полезные функции. Раньше не было мотивации разобратся. И тут на тебе - нежданка.
Вопросы.
1. $webpage->print_screen делает снимок экрана типа как imagegrabscreen() и XHE, соответственно, всё равно какой html страницы. Так?
2. Поиск $webpage->get_x_in_webpage_picture найдёт координаты фрагмента страницы, аналогичного вырезанному со снимка образцу. Так?
Кнопка Google, исходя из этого
Код: Выделить всё
<input type="submit" jsaction="sf.chk" name="btnK" aria-label="Google-Suche" value="Google-Suche">
Олег выше высказал свои соображения. bigfozzy, Вы никак не прокомментировали. Это важный момент. Нет?
3. Не замечены ли сбои работы функционала по картинкам при следующей конфигурации:
- Windows 7 Professional, 64-bit 6.1.7601, Service Pack 1
- IE 11 Version: 11.0.9600.17914
- VMware Workstation 11.0.0 build-2305329
- XWeb Human Emulator (Advanced) 4.9.8
- PHP Version => 5.5.15
- System => Windows NT WIN-9......T 6.1 build 7601 (Windows 7 Business Edition Service Pack 1) i586
- Build Date => Jul 23 2014 14:58:09
- Compiler => MSVC11 (Visual C++ 2012)
- PHP API => 20121113
- PHP Extension => 20121212
- Zend Extension => 220121212
- Zend Extension Build => API220121212,TS,VC11
- PHP Extension Build => API20121212,TS,VC11
Переключал XHE на пакет PHP из ХНЕ и из ХАМРР - без изменений. Переходить на новые версии софта не с руки - всё работает непрерывно больше года как часы. Прерываться будет больно. Функционал картинок вроде "древний" и должен без проблем фурычить?
bigfozzy, надеюсь на Ваши подсказки.
Re: получить x координату заданного изображения на странице
насчет старой версии не уверен - там возможно помоему тока работа с bmp - может из-за этого. А так сделать снимок через webpage->print_screen - получится bmp файл - если там есть то что надо - то функции $webpage->get_x_in_webpage_picture найдет это. Но вырезать надо из того же файла (я использовал Paint)- котjрый сделать print_screen. Как вариант запустить тест - http://humanemulator.net/objects/WEB/we ... icture.php. если он работает - то все будет работать как надо и на старой версии.
Re: получить x координату заданного изображения на странице
Спасиб, буду разбираться в командной строке, хотелось конечно счастья в виде пхп екстеншна, но нету.Через Exiftool попробуйте, запросы из скрипта удобней слать с помощью shell_exec ()
попробуйте полный путь, у меня так работаетстранно, что не работает $webpage->print_screen("scr.bmp");
Код: Выделить всё
$webpage->print_screen("C:/3.jpg",$xl=-1,$yt=-1,$xr=-1,$yb=-1);
В новой вроде тоже бмп, по крайней мере так работаетнасчет старой версии не уверен - там возможно помоему тока работа с bmp - может из-за этого.
Код: Выделить всё
echo $browser->navigate("http://bigfozzy.com")."<br>";
$anchor->screenshot_by_number("C:/4.bmp","0",$frame=-1);
$x = $webpage->get_x_in_webpage_picture("C:/4.bmp");
$y = $webpage->get_y_in_webpage_picture("C:/4.bmp");
echo $mouse->move($x,$y)."<br>";
Семерка она нормальная если чистая, т.е. ENG, если накатить локаль это уже глючная гадость, вин сервер 2008р2 попользуйте, не пожалеете.Windows 7 Professional, 64-bit 6.1.7601, Service Pack 1
P.S. Я бы лично после знакомства с имеджиком внутренние функции не использовал, просто есть класный и быстрый екстеншн, отлично задокументирован если что http://stackoverflow.com/questions/2576 ... server-2-5
P.P.S. Внутренняя функция очень ресурсоемка, имеджик на порядок быстрей.