Помогите с SetContext
Автор Эдмонд Уэллс, 31 мар 2006 07:25
Сообщений в теме: 7
#1
Отправлено 31 марта 2006 - 07:25
Произошла проблемка такая: в тестируемой программе заголовок одного из окон формируется автоматически, и состоит из двух частей. Каким образом можно использовать setcontext не по caption=..., а по caption содержит (к примеру, ведь часть названия мне известна)?
Причём просто пустой метод получения не подходит, т.к. иногда надо проверять наличие этого окна и же исходя из этого действовать.
Как мне его определять - т.е. наличие по динамическому заголовку - и как по динамическому же заголовку потом к нему обращаться?
Заранее очень признательна за ответ!
Причём просто пустой метод получения не подходит, т.к. иногда надо проверять наличие этого окна и же исходя из этого действовать.
Как мне его определять - т.е. наличие по динамическому заголовку - и как по динамическому же заголовку потом к нему обращаться?
Заранее очень признательна за ответ!
#2
Отправлено 31 марта 2006 - 10:05
Попробуйте так:
Dim PartOfCaption as string
Dim Result as integer
Dim s as string
Dim n as integer
...
PartOfCaption = "what you know about the caption" 'часть заголовка, которая вам известна
Window SetContext, "CurrentWindow", ""
Result = SQAGetProperty("Type=Window;CurrentWindow","Caption",s)
n = InStr(s, PartOfCaption)
if n > 0 then
' это ваше окно
else
' это не ваше окно
end
Dim PartOfCaption as string
Dim Result as integer
Dim s as string
Dim n as integer
...
PartOfCaption = "what you know about the caption" 'часть заголовка, которая вам известна
Window SetContext, "CurrentWindow", ""
Result = SQAGetProperty("Type=Window;CurrentWindow","Caption",s)
n = InStr(s, PartOfCaption)
if n > 0 then
' это ваше окно
else
' это не ваше окно
end
#3
Отправлено 31 марта 2006 - 10:39
Надежда, спасибо большое, спасаете новичка!
Обязательно воспользуюсь советом, скорее всего, мне именно это и нужно!
Только один вопрос - что такое CurrentWindow? Это окно, находящееся поверх остальных?
Я сейчас объясню ситуацию подробно.
Захожу в окно, стандартная форма с кнопочками, заголовок - "карточка".
Нажимаю там пару кнопок, попадаю в дочернее окно, там указываю номер карточки. При выходе из дочернего окна в интересующее меня окно у меня меняется заголовок родительского окна, он становится "карточка" + её номер. Но родительское окно поверх всех остальных. Более того - это окно активно! Иногда, однако, его нет. Получается, мне надо узнать заголовок АКТИВНОГО в данный момент окна и действовать исходя из этого. Поэтому в идеале мне нужна функция, возвращающая заголовок АКТИВНОГО окна.
А её-то я и не могу найти :(
Обязательно воспользуюсь советом, скорее всего, мне именно это и нужно!
Только один вопрос - что такое CurrentWindow? Это окно, находящееся поверх остальных?
Я сейчас объясню ситуацию подробно.
Захожу в окно, стандартная форма с кнопочками, заголовок - "карточка".
Нажимаю там пару кнопок, попадаю в дочернее окно, там указываю номер карточки. При выходе из дочернего окна в интересующее меня окно у меня меняется заголовок родительского окна, он становится "карточка" + её номер. Но родительское окно поверх всех остальных. Более того - это окно активно! Иногда, однако, его нет. Получается, мне надо узнать заголовок АКТИВНОГО в данный момент окна и действовать исходя из этого. Поэтому в идеале мне нужна функция, возвращающая заголовок АКТИВНОГО окна.
А её-то я и не могу найти :(
#4
Отправлено 31 марта 2006 - 11:42
Help по ключевому слову CurrentWindow выдает:
Т.е. получается, что CurrentWindow - это как раз то окно, которое сейчас активно. Вы проверяете его заголовок и действуете соответственно результату.CurrentWindow is a recMethod value that specifies the currently active window as the window object to access or to set as the current context window
#5
Отправлено 31 марта 2006 - 13:14
эээ
не получается. Окно, которое так меня интересует, само по себе - childwindow. Если запускать Ваш вариант - он мне подтягивает заголовок окна, а не его дочернего, которое меня интересует.
Я переделала так:
Window SetContext, "CurrentChildWindow", ""
Result = SQAGetProperty("Type=Window;CurrentChildWindow","Caption",s)
в результате то же самое, я сделала вывод в сообщении "s" - он мне говорит заголовок не того окна, которое мне нужно, а его родительского :((
Пожалуйста, помогите кто-нибудь.
не получается. Окно, которое так меня интересует, само по себе - childwindow. Если запускать Ваш вариант - он мне подтягивает заголовок окна, а не его дочернего, которое меня интересует.
Я переделала так:
Window SetContext, "CurrentChildWindow", ""
Result = SQAGetProperty("Type=Window;CurrentChildWindow","Caption",s)
в результате то же самое, я сделала вывод в сообщении "s" - он мне говорит заголовок не того окна, которое мне нужно, а его родительского :((
Пожалуйста, помогите кто-нибудь.
#6
Отправлено 31 марта 2006 - 14:33
Пользуйтесь Wildcard characters, т.е.
Window SetContext, "Caption={*постоянная часть caption*}", ""
Window SetContext, "Caption={*постоянная часть caption*}", ""
#7
Отправлено 03 апреля 2006 - 06:34
Не работает, говорит "empty string" на эту строчку.
Проблема, как я понимаю, в том, что с дочерними окнами надо работать как-то иначе. При написании плейбэков робот сам всегда ставит контекст дважды: сначала на родительском окне, потом на дочернем, чтобы иметь к дочернему доступ.
Гуру, а подскажите, могу ли я во время работы с окном, пока ещё мне известен его заголовок, присвоить ему какой-либо параметр, по которому в итоге и смогу его определять?
Проблема, как я понимаю, в том, что с дочерними окнами надо работать как-то иначе. При написании плейбэков робот сам всегда ставит контекст дважды: сначала на родительском окне, потом на дочернем, чтобы иметь к дочернему доступ.
Гуру, а подскажите, могу ли я во время работы с окном, пока ещё мне известен его заголовок, присвоить ему какой-либо параметр, по которому в итоге и смогу его определять?
#8
Отправлено 03 апреля 2006 - 07:14
Проблема решена :)
Методом подбора, гаданием на кофейной гуще и танцами с бубном. При добавлении ;ChildWindow в recMethod$ заработало :)))
Находим так,
result=SQAWaitForObject("Caption={*Первичный документ};ChildWindow", 3000)
Заходим так
Window SetContext, "Caption={*Первичный документ};ChildWindow", ""
Всем спасибо за помощь.
Методом подбора, гаданием на кофейной гуще и танцами с бубном. При добавлении ;ChildWindow в recMethod$ заработало :)))
Находим так,
result=SQAWaitForObject("Caption={*Первичный документ};ChildWindow", 3000)
Заходим так
Window SetContext, "Caption={*Первичный документ};ChildWindow", ""
Всем спасибо за помощь.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных