Из-за присвоения имен, установленных в QTP, новички часто путают исключения и события GUI.
Поистине, всплывающее окно не является «исключением», даже если оно «сбивает» выполнение скрипта.
Для поиска и восстановления после неудачных операций я рекомендую использовать операторы «On Error Resume Next ... On Error GoTo 0».
Для обнаружения событий GUI, которые могут произойти или не произойти, вы можете использовать сценарии восстановления QTP, НО, как упоминал Том E, каждый активированный обработчик восстановления использует дополнительные ресурсы и влияет на производительность QTP.
Лучший способ использовать только те из них, которые вам понадобятся, и оставить все остальное дезактивированным.
Несколько примеров.
исключения 1.Catching
Таким образом, если у вас есть RegEx синтаксических ошибок, выполнение не остановится.
Set objRegEx = New RegExp
objRegEx.Pattern = strRegEx
On Error Resume Next
boolRC = objRegEx.Test(strSrc)
intRC = Err.Number
On Error GoTo 0
If intRC <> 0 Then boolRC = False
Set objRegEx = Nothing
2.Dynamically Обработчики операционной восстановления
intPos = Recovery.GetScenarioPosition("API\Exceptions\AppExceptions.qrs", "Recovery_on_Error1")
''# You can store intPos (position in QTP's qrs file) for all handlers during initialization
Recovery.SetScenarioStatus intPos, boolState ''# Parameterize boolState as True or False
''# Enable or disable handlers this way. Disabled handler does not consume QTP resources.
Спасибо,
Albert Гареев
http://automation-beyond.com/