Обращение к объекту label на форме
#1
Отправлено 21 апреля 2011 - 07:30
Помогите плиз новичку с, наверно, простым, но тупиковым для меня вопросом.
Нужно определить что появилось диалоговое окно и в нем находится такой-то текст. Вот скрин:
Т.е. нужно обратиться как-то к тексту на форме и проверить что там есть "WordPad has finished searching the document".
Вот так вроде только заголовок читается:
aqObject.CompareProperty(dlgWP.WndCaption , cmpEqual , "TEXT", true);
Подскажите плиз как проверить-то эту строку. На скрине есть инфа о ней через Use Finder Tool.
#2
Отправлено 21 апреля 2011 - 07:41
Всем привет.
Помогите плиз новичку с, наверно, простым, но тупиковым для меня вопросом.
Нужно определить что появилось диалоговое окно и в нем находится такой-то текст. Вот скрин:
Т.е. нужно обратиться как-то к тексту на форме и проверить что там есть "WordPad has finished searching the document".
Вот так вроде только заголовок читается:
aqObject.CompareProperty(dlgWP.WndCaption , cmpEqual , "TEXT", true);
Подскажите плиз как проверить-то эту строку. На скрине есть инфа о ней через Use Finder Tool.
if (w.wndCaption == "WordPad has finished searching the document")
Log.Message("Надпись появилась = )")
else
Log.Warning("Не появилась")
где w - FullName вашего окна с этим сообщением ,тобишь dlgWP
#3
Отправлено 21 апреля 2011 - 08:07
так вот мне и нужно как-то сделать проверку и убедится что он там есть!
#4
Отправлено 21 апреля 2011 - 08:17
XXX, немного не то что я хотел. так получается что этого текста там нету, но он то есть!
так вот мне и нужно как-то сделать проверку и убедится что он там есть!
как это его там нет?
на скрине же в Object Spy у wndCaption стоит значение - этот текст..
или я опять не понял чтото?)
#5
Отправлено 21 апреля 2011 - 08:25
Но ни мой вариант, ни ваш этого не доказывает - ТС выдает варнинг, что такого текста нету.
Проверив, получилось что wndCaption определяет лишь заголовок окна ("WordPad").
#6
Отправлено 21 апреля 2011 - 09:02
там получается так: текст этот есть, и это нужно доказать через ТС.
Но ни мой вариант, ни ваш этого не доказывает - ТС выдает варнинг, что такого текста нету.
Проверив, получилось что wndCaption определяет лишь заголовок окна ("WordPad").
Значит вы дали скрин на котором свойства не самого окна с этим сообщением, а того самого лейбла..
Сделайте так
if (Sys.Process("wordpad").Find("wndCaption","WordPad has finished searching the document",5).Exists) Log.Message("Надпись наконецто нашлась...");
#8
Отправлено 21 апреля 2011 - 09:50
опять нет(( не находит оно такого элемента...
вот скрин инфы о всем месаджбоксе:
В окошке Object Spy , когда выберете ваше диалоговое окно , нажмите на кнопку Highlight Object in The Object Tree
И киньте сюда скрин дерева из Object Browser
а вообще я у себя спокойно определяю тот самый лейбл с нужным вами текстом в вордпаде..и скрипт у меня который я вам дал работает.
#10
Отправлено 21 апреля 2011 - 16:13
так вот же в браузере у вас отображается дочерний элемент вашего диалогового окна который вам и нужен!!
Window("Static","WordPad has finished searching the document.",2)
И сразу стало видно что я просто пропустил точку в конце предложения
тобишь пробуйте
if (Sys.Process("wordpad").Find("wndCaption","WordPad has finished searching the document.",2).Exists) Log.Message("Надпись наконецто нашлась...");
#11
Отправлено 21 апреля 2011 - 16:25
но это получился частный подход, а как-нибудь можно реализовать это более универсально?
ЗЫ: спасибо!
#12
Отправлено 21 апреля 2011 - 17:23
да, точно, так оно работает, я тоже точку пропустил, думая что она не влияет...
но это получился частный подход, а как-нибудь можно реализовать это более универсально?
ЗЫ: спасибо!
Как это частный?помоему наоборот метод Find() более универсальный...чем использовать полный путь к объекту ..
Или что вы имели ввиду?уточните плз
#13
Отправлено 21 апреля 2011 - 18:05
ну да ладно, главное что задача решена. еще раз спасибо!
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных