Как сделать универсальный скрипт?
#1
Отправлено 26 июля 2004 - 10:47
#2
Отправлено 26 июля 2004 - 12:21
#3
Отправлено 26 июля 2004 - 12:31
#4
Отправлено 26 июля 2004 - 12:32
#5 Гость_Guest_Nomad_*
Отправлено 26 июля 2004 - 12:46
#6
Отправлено 26 июля 2004 - 12:53
#7
Отправлено 26 июля 2004 - 13:22
А может быть это и есть Handle ? Значение какого объекта (тип окно ?) и какого его свойства вы смотрите ?(и на удивление почему-то всегда равный хендалу)
#8
Отправлено 26 июля 2004 - 13:32
вот дотустим пример, оба свойства имеют одинаковое значение
Sys.Process("KOMPAS").Window("Afx:400000:8:10011:0:20caf", "КОМПАС-3D V7 - [Фрагмент БЕЗ ИМЕНИ1]", 1).Window("Edit", "", 3).ID
Sys.Process("KOMPAS").Window("Afx:400000:8:10011:0:20caf", "КОМПАС-3D V7 - [Фрагмент БЕЗ ИМЕНИ1]", 1).Window("Edit", "", 3).Handle
#9 Гость_Guest_Nomad_*
Отправлено 26 июля 2004 - 13:39
нажатие кнопки Cancel в форме New Order
Call w.Window("ThunderRT6CommandButton","*",1).Click()
или это тоже не то и я не так понял? :blink:
#10
Отправлено 26 июля 2004 - 13:42
#11 Гость_Guest_Nomad_*
Отправлено 26 июля 2004 - 13:48
#12
Отправлено 26 июля 2004 - 13:52
#13 Гость_Guest_Nomad_*
Отправлено 26 июля 2004 - 14:00
кусок кода я вставлял выше :) вот полностью
Sub Test1
Set p = Sys.Process("Orders")
Set w = p.MainForm
w.Activate
Call w.Window("msvb_lib_toolbar").Click(104)
Set w = p.OrderFrm
w.Activate
Call w.Window("ThunderRT6CommandButton","*",1).Click()
End Sub
вот если ты запустишь ордеры, и нажмешь New Order посмотри ObjectProperties, ID меняется каждый раз и равен Handle, а вот WndIndex всегда постоянный вот от него и отталкивайся. Вот вроде бы все если что пиши бум думать дальше :)
#14
Отправлено 26 июля 2004 - 14:11
#15 Гость_Guest_Nomad_*
Отправлено 26 июля 2004 - 14:19
а то не совсем понятно, наскольок я понимаю, когда ты нажимаешь первый едит, появляется другое окно, и ты уже потом отталкиваешся от другого окна.....
#16
Отправлено 26 июля 2004 - 14:33
#17 Гость_Guest_Nomad_*
Отправлено 26 июля 2004 - 14:42
а что происходит если ты два раза жмешь на едит(1)?
и там хоть как нибудь видно второй едит? :)
#18
Отправлено 26 июля 2004 - 14:49
P.S. Конечно плохо с моей стороны, но я покидаю форум, меня тут уже с работы выганяют.
#19 Гость_Guest_Nomad_*
Отправлено 26 июля 2004 - 14:56
я что то опять запутался :)
но как по мне гарячие клавиши в использовании нажатия кнопок самая верная вещь, к тому же если что поправить легче ;)
#20
Отправлено 27 июля 2004 - 15:38
Если вы посмотрите в ObjectBrowser панели внизу Description для свойтсва ID - то там можно прочитать:Смотрю свойство ID , а объекты любые что окно, что эдиты все обекты что я смотрел везде совпадали ид с хандалом
вот дотустим пример, оба свойства имеют одинаковое значение
Sys.Process("KOMPAS").Window("Afx:400000:8:10011:0:20caf", "КОМПАС-3D V7 - [Фрагмент БЕЗ ИМЕНИ1]", 1).Window("Edit", "", 3).ID
Sys.Process("KOMPAS").Window("Afx:400000:8:10011:0:20caf", "КОМПАС-3D V7 - [Фрагмент БЕЗ ИМЕНИ1]", 1).Window("Edit", "", 3).Handle
int ID
Object ID - For processes - the process ID, for Windows- the Window handle etc
Причина совпадения, я думаю, понятна.
Оконные объкты в TestComplete идентифицируются следующими параметрами:
WndClass [in] Required String
WndCaption [in] Optional String Default value: "*"
WndIndex [in] Optional Integer Default value: -1
Sys.Process("TestComplete").Window("TFormIndicator", "FormIndicator", 1)
Подробнее смотри Help по функции Window
В случае VC++ приложений - имена классов типа "Afx:400000:8:10011:0:20caf" надо заменять на
"Afx:400000:8:*" так как последние числа изменяются от запуска к запуску - подробнее см. Changes in Window Attributes TestComplete help topic.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных