Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

Поиск объектов на экране   Найти похожие ветки 

 
kingdom ©   (2004-03-29 12:29) [0]

Есть такая задача по тестированию софта и web-страниц...
нужно находить объекты на экране, например:
- окно
- меню
- кнопка
- текст
- гипер текст
и получать о них информацию, например:
- цвет
- название кнопки/меню/окна
- содержимое текста
а также выполнять с ними действия, например:
- нажиметь на кнопки и меню
- перетаскивать окна

Как пример, могу назвать SnagIt, который умеет распозновать ОБЪЕКТЫ на экране, даже в IE, это для меня важно.

Вопрос в том как НАЙТИ эти объекты?
Для окон и кнопок подходит EnumWinows, хотя внутрь IE оно не попадает =(, а как найти остальные объекты, как это делает snagIt?


 
Семен Сорокин ©   (2004-03-29 12:30) [1]

Spy++ из поставки VS


 
kingdom ©   (2004-03-29 13:14) [2]

>Семен Сорокин
Спасибо за ответ!
Но Spy почему-то не может пролезть внуть web-страницы =(
он находит окно Internet Explorer_Server и все

но SnagIt это как-то делает! как?


 
Algol   (2004-03-29 15:30) [3]


> но SnagIt это как-то делает! как?

Возможно через COM интерфейс...


 
kingdom ©   (2004-03-29 17:34) [4]

>Algol
Я конечно посмотрю, но скорее всего это не поможет


 
kingdom ©   (2004-03-30 12:06) [5]

Сильные программисты!
Есть какие-нибудь идеи?


 
TUser ©   (2004-03-30 13:02) [6]

Вот например, распознать текст и отличить его от гипертекста - это та еще задачка. Непросто это, я думаю.


 
kingdom ©   (2004-03-31 11:10) [7]

Я конечно не исключаю, что SnagIt может просто сканировать экран и распознавать текст, но есть такие факты:
- как я уже говорил, он понимает гипертекст, т.е. может извлечь ссылку
- если html содержит картинку, то он понимает ее как картинку, а не как часть экрана, т.е. текст на картинке он прочитать не может


 
Anatoly Podgoretsky ©   (2004-03-31 12:08) [8]

На экране нет объектов, только точки, объекты ищи в окнах.


 
хамло )   (2004-03-31 12:20) [9]

MSHTML.pas - для разбора веб-страниц.
очень хорошо работает. сам когда-то разбирал страницы. строил приложения для автозаполнения веб-форм.


 
kingdom ©   (2004-03-31 16:03) [10]

>Anatoly Podgoretsky
А как их искать в окнах? И как их искать внутри IE?
Например, кнопку на форме можно найти через EnumWindows, а вот кнопку на странице в IE не понятно как искать...

>хамло )
В MSHTML нет информации о координатах объектов => где это берет SngIt, хотя ссылки для гипертекста он извлекает возможно через MSHTML


 
BiN ©   (2004-03-31 16:14) [11]

в посте [3] тебе дан правильный ответ
нужно использовать объекты Shell.Application и .Windows иже с ним


 
kingdom ©   (2004-03-31 21:19) [12]

>BiN
Ответ может и правильный, только не понятный )))
Если описалово есть в MSDN, укажите раздел или какой-нить ключ


 
Anatoly Podgoretsky ©   (2004-04-01 10:41) [13]

kingdom ©   (31.03.04 16:03) [10]
IE является сом сервером.


 
BiN ©   (2004-04-01 11:42) [14]

Если описалово есть в MSDN, укажите раздел или какой-нить ключ

Shell Object
ShellWindows object
InternetExplorer object


 
kingdom ©   (2004-04-02 14:04) [15]

>Anatoly Podgoretsky
>IE является сом сервером.
это понятно, а что делать-то?

>BiN
это тоже самое что MSHTML и DHTML, но он не дает информации о местоположении объектов!!!

Спасибо всем за советы, но вы по сути предлагаете "парсить" документ через COM, а мне надо протестировать страницу отображаемую IE.

Например, вы сейчас читаете эту страницу, а мой тест должен проверить, что:
- внизу страницы находиться три поля для ввода (имя, мыло и сообщение)
- у последнего есть полоса прокрутки
- есть кнопки "Ж", "К", "Ч", "КОД" и ">" (если это текст, а не картинки)
- есть кнопка "Добавить"
- есть рекламный банер
и т.д.

Я предполагаю, что перечисленные объекты рисуются на экране с помощью стандартных WinApi"шных функций, т.е. содержимое окна, не есть литая картинка, которая рисуется по событию WM_PAINT. А используются вмндовые button, checkbox и т.д.
Первый вопрос, действительно ли это так? А второй как пролезть внутрь окна? Влоб через EnumWindowChild не получается. А вот SnagIt прекрасно распознает объекты!


 
BiN ©   (2004-04-02 14:37) [16]

Первый вопрос, действительно ли это так?
Врятли было бы разумно использовать в качестве активных элементов страницы объекты ядра, коими и являются окна (вмндовые button, checkbox и т.д).


 
kingdom ©   (2004-04-02 14:40) [17]

>BiN
Сошласен это вопрос спорный, но в очередной раз сошлюсь на SnagIt, как он объекты распознает?


 
BiN ©   (2004-04-02 15:03) [18]

... вы по сути предлагаете "парсить" документ через COM, а мне надо протестировать страницу отображаемую IE

Не через COM, думаю, это сделать будет затруднительно. И твой SnagIt, по-видимому, работает именно так.
Получив объект Document в свое распоряжение, ты можешь через Forms и их Elements получить всю интересующую тебя информацию.



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.024 c
8-1077452218
Cerber
2004-02-22 15:16
2004.05.16
OpenGL


14-1082946207
Думкин
2004-04-26 06:23
2004.05.16
С днем рождения! 26 апреля.


1-1083318130
siriusP
2004-04-30 13:42
2004.05.16
Как запретить класть на TPanel компоненты?


1-1083397320
k@rt
2004-05-01 11:42
2004.05.16
TDCMemo


1-1083527200
DeOptric
2004-05-02 23:46
2004.05.16
Ссылка в Richedit