Перейти к содержимому

Фотография

Получения названия текущего окна


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 Natusya

Natusya

    Новый участник

  • Members
  • Pip
  • 56 сообщений
  • Город:Россия, Владивосток


Отправлено 27 августа 2009 - 04:06

Занимаюсь тестированием программы, написанной на Delphi.

С помощью какой функции можно получать Caption текущего окна?
Т.е. я хочу сделать скрипт, который будет поочереди запускать все юзкейсы и если вдруг появится окно с названием "Ошибка", то я сделаю соответствую запись об ошибке.

(В Ration Robot можно было активировать текущее окно и получить указанное свойство:
Window SetContext, "CurrentWindow", ""
Res=SQAGetProperty ("CurrentWindow","Caption",value)
если кто пользовался может знает аналог?)
  • 0
Test Complete 7, Delphi, DelphiScript

#2 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 31 августа 2009 - 08:35

STRING sRes1 = WINDOW.sCaption
STRING sRes2 = WINDOW.GetCaption ()

где WINDOW = нужное окно
  • 0

#3 Natusya

Natusya

    Новый участник

  • Members
  • Pip
  • 56 сообщений
  • Город:Россия, Владивосток


Отправлено 01 сентября 2009 - 06:23

где WINDOW = нужное окно


Я так поняла, что в Силке, чтобы применить какой-нибудь метод или узнать свойство, я должна написать Имя_окна.Свойство(). Я верно понимаю?

Ну так если я не знаю имени окна, как я могу воспользоваться этим свойством окна?
Я хочу узнать имя окна об ошибке, которое неизвестно когда может появиться.

Алгоритм такой:
1) Цикл по i по номерам существующих юзкейсов
2)) Запускаю i-ый Юз кейс.
3) Читаю Имя_всплывшего_окно
4) Если Имя = ошибка, то
4.1) записываю в лог
Иначе
4.2) переход на шаг 1)
  • 0
Test Complete 7, Delphi, DelphiScript

#4 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 01 сентября 2009 - 14:57

имя_окна.свойство или имя_окна.метод()
создайте окно с тегом "~ActiveApp" - этотег, обозначающий любое активное окно.
  • 0

#5 Natusya

Natusya

    Новый участник

  • Members
  • Pip
  • 56 сообщений
  • Город:Россия, Владивосток


Отправлено 04 сентября 2009 - 04:12

имя_окна.свойство или имя_окна.метод()
создайте окно с тегом "~ActiveApp" - этотег, обозначающий любое активное окно.



Не получилось у меня так сделать, либо я неправильно что-то сделала :(.
  • 0
Test Complete 7, Delphi, DelphiScript

#6 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 04 сентября 2009 - 11:28

имя_окна.свойство или имя_окна.метод()
создайте окно с тегом "~ActiveApp" - этотег, обозначающий любое активное окно.



Не получилось у меня так сделать, либо я неправильно что-то сделала :(.

гм. это было очень информативно :clapping:

пойдём медленным путём :
у вас "окно, которое всплывает" - это главное окно или это маленькое сообщение об ошибке над главным окном ?
можете его распознать и закинуть сюда его фрейм ? (разумеется, с обфускацией)
  • 0

#7 Natusya

Natusya

    Новый участник

  • Members
  • Pip
  • 56 сообщений
  • Город:Россия, Владивосток


Отправлено 08 сентября 2009 - 03:22

пойдём медленным путём :
у вас "окно, которое всплывает" - это главное окно или это маленькое сообщение об ошибке над главным окном ?
можете его распознать и закинуть сюда его фрейм ? (разумеется, с обфускацией)


Если запуск юзкейса прошёл удачно, то всплывает окно, например, со справочником, если нет, то маленькое сообщение.
Например я в программе запустила Справочник Мужские имена и в основной программе запустилась окно, но оно не плавающее
Прикрепленный файл  _________.JPG   71,99К   41 Количество загрузок:
Фрейм такой:
[-] window MainWin ИСОООАстраФармВерсия02
	[-] multitag "ИС ООО:ASTRA?15800??*"
		[ ] "*?Мужские имена?"
		[ ] "$D:\app.exe"
	[+] Menu Menu1		
			 ...
	[+] Menu Menu12
	[+] Menu Menu13
	[+] MenuItem MenuItem14
	[+] CustomWin TNotifierWindow1
	[-] CustomWin TAdvOfficeMDITabSet1
		[ ] tag "[TAdvOfficeMDITabSet]$14549646"

У всплывающей ошибке фрейм такой:
[-] window DialogBox App
	[ ] tag "app"
	[-] CustomWin OK
		[-] multitag "[TButton]OK"
			[ ] "[TButton]$95092898"

либо (другой тип всплывающих ошибок):
[-] window DialogBox Ошибка
	[ ] tag "Ошибка..."
	[-] CustomWin TAdvPanel1
		[ ] tag "[TAdvPanel]$95223970"
		[-] CustomWin TPanel1
			[ ] tag "[TPanel]$33489836"
			[-] CustomWin TPanel1
				[ ] tag "[TPanel]$17761266"
			[-] CustomWin OK
				[-] multitag "[TAdvGlowButton]OK"
					[ ] "[TAdvGlowButton]$15598274"

Вот мне и надо во время работы Тесткейса, если всплыло не окно Справочника, то записать название окна с ошибкой.
  • 0
Test Complete 7, Delphi, DelphiScript

#8 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 10 сентября 2009 - 13:22

сделайте себе
[-] window DialogBox dError
	[ ] tag "app[1]|Ошибка*[1]"
	[-] PushButton OK1
		[ ] tag "[TButton]OK"
	[-] PushButton OK2
		[ ] tag "[TAdvPanel]#1/[TPanel]#1/[TAdvGlowButton]OK"
	[ ] 
	[-] STRING GetCaptionAndClose ()
		[ ] STRING sResult = ''
		[ ] 
		[-] if this.Exists (0.1)
			[ ] sResult = this.GetCaption ()
			[-] if this.OK1.Exists (0.1)
				[ ] OK1.Click ()
			[-] else
				[ ] OK1.Click ()
		[ ] 
		[ ] return sResult
и используйте dError.GetCaptionAndClose () ;)
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных