Robot не видит окно при повторном проходе цикла
#1
Отправлено 14 мая 2012 - 09:48
Также в логе есть: Playback Warning: String is empty Empty String
Кроме этого возникают предепреждения:
**** Script Command Failure on line 26 of '300' - Empty String
**** Script Command Failure on line 26 of '300' - Empty String
**** Script Command Failure on line 28 of '300' - Empty String
**** Script Command Failure on line 26 of '300' - Empty String
**** Script Command Failure on line 28 of '300' - Empty String
**** Script Command Failure on line 32 of '300' -
Проблемный кусок скрипта:
For i=1 to 3
........
Window SetContext, "Caption=Помилка", "" (строка 26)
PushButton Click, "Text=OK" (строка 28)
DelayFor (1000) задержка добавлена поскольку приложение работает достаточно медленно
Window SetContext, "Caption=Інформація", "" (строка 32)
PushButton Click, "Text=OK"
.....
Next i
Жду ваших советов.
#2
Отправлено 14 мая 2012 - 10:32
Window SetContext, "Caption=Помилка", ""
Window SetContext, "Caption=Інформація", ""
if fSetContext("Помилка") then
...
else
...log error
где fSetContext:
Function fSetContext(psCaption as string) as integer
if WindowVP (Exists, "Caption="+psCaption, "VP=fSetContext;Wait=2,30") = 1 then
Window SetContext, "Caption="+psCaption, ""
fSetContext=1
else
fSetContext=0
end if
end function
#3
Отправлено 14 мая 2012 - 13:16
Вместо
Window SetContext, "Caption=Помилка", ""
Window SetContext, "Caption=Інформація", ""
if fSetContext("Помилка") then
...
else
...log error
где fSetContext:
Function fSetContext(psCaption as string) as integer
if WindowVP (Exists, "Caption="+psCaption, "VP=fSetContext;Wait=2,30") = 1 then
Window SetContext, "Caption="+psCaption, ""
fSetContext=1
else
fSetContext=0
end if
end function
Спасибо за совет, но мне не очень помогло. Эта процедура очень сильно замедляет работу, а мне важно после возникновения окна "Помилка" остановить таймер. А если я написала
if fSetContext("Помилка") then
.....
то у меня насчитываются лишние секунд 10.
Поэтому попробовала сделать так:
Window SetContext, "Caption=Помилка", ""
ElapseTime = Timer - ElapseTime
PushButton Click, "Text=OK"
DelayFor (1000)
if WindowVP (Exists, "Caption=Інформація", "VP=WindowExistence;Wait=2.3") = 1 then
Window SetContext, "Caption=Інформація", ""
PushButton Click, "Text=OK"
end if
но при этом у меня опять при первом проходе все хорошо, а на втором уже очень сильно тормозит и в конце концов пишет, что не может найти окно. Может будут еще какие-то идеи? или я что-то делаю не так?
И еще:
в строчке
if WindowVP (Exists, "Caption="+psCaption, "VP=fSetContext;Wait=2,30") = 1 then
точно должно быть "VP=fSetContext"? Я просто не совсем понимаю, что это означает. мне казалось правильнее писать "VP=WindowExistence".
#4
Отправлено 14 мая 2012 - 13:50
И еще:
в строчке
if WindowVP (Exists, "Caption="+psCaption, "VP=fSetContext;Wait=2,30") = 1 then
точно должно быть "VP=fSetContext"? Я просто не совсем понимаю, что это означает. мне казалось правильнее писать "VP=WindowExistence".
"VP=..." - script verification point name = anything
WindowVP (Exists, "Caption="+psCaption, "VP=fSetContext;Wait=2,30")
Log:
Verification Point (fSetContext - Window Existence) Pass
WindowVP (Exists, "Caption="+psCaption, "VP=Window Existence;Wait=2,30")
Log:
Verification Point (Window Existence - Window Existence) Pass
#5
Отправлено 14 мая 2012 - 14:41
Function fSetContext(psCaption as string) as integer
if WindowVP (Exists, "Caption="+psCaption, "VP=fSetContext;Wait=2,80") = 1 then
Window SetContext, "Caption="+psCaption, ""
fSetContext=1
else
fSetContext=0
end if
end function
.......
For i=1 to 3
.......
if fSetContext("Помилка") then
ElapseTime = Timer - ElapseTime
PushButton Click, "Text=OK"
end if
if fSetContext("Інформація")=1 then
PushButton Click, "Text=OK"
end if
........
Next i
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных