Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.021 c
1-1083673093
Jiurasdfgfr
2004-05-04 16:18
2004.05.16
Как сделать програмно картинку части моей формы?


9-1072382293
lucky
2003-12-25 22:58
2004.05.16
Помогите плз сделать 3d врыв в DelphiX.


3-1082238236
SergeyV
2004-04-18 01:43
2004.05.16
Соединение с MS-SQL2000 из консольного приложения


7-1080822606
microprogs
2004-04-01 16:30
2004.05.16
Как смотреть DialUP пароли в Win XP?


14-1082805073
ctranik
2004-04-24 15:11
2004.05.16
Ув. мастера подскажите как работать с MSDN




   Наверх