TestComplete 10.6 \ VBScript \ тестируемое приложение на с++
Добрый день !
Наверное, сразу стоит предупредить, что это мой первый опыт работы с автоматизацией.
Пытаюсь заавтоматизировать установку приложения на вирт машинах VMware (через TestExecute), но спотыкаюсь на каждых граблях.
Подскажите, пожалуйста, решение сразу с несколькими проблемами:
1. при первом запуске скрипта всегда вылазит ошибка "The process "msiexec" was not found. The test run has stopped because the "Stop on Error" setting is enabled. ". При второй попытке успешно запускается. Можно ли каким-нибудь образом исключить такое поведение ?
2. после выбора настроек установки появляется окно с кнопкой Install, изначально проблема была, что кнопку не было видно (Cannot obtain the window with the window class 'Button', window caption '&Install' and index -1. See Additional Information for details. 8:36:45 Normal ), хотя окно появляется сразу и через Record Script и Display object Spy видно. Мне кажется, что частично было решено через Sys.Refresh(), но до сих пор скрипт периодически фейлится c этой ошибкой.
3. после продолжительной установки появляется финальное окно с кнопкой Finish. и тут скрипт постоянно или зависает, или фейлится, или еще что-нибудь. Подскажите грамотное решение, как дождаться завершения установки и появления окна.
Sub InstallFDE Set WshShell = CreateObject("WScript.Shell") WshShell.Run "msiexec.exe /i \\pga\share\fde\fse_x64.msi" Set msiexec = Sys.Process("msiexec", 2) Set InstallationWindow = msiexec.WaitWindow("MsiDialogCloseClass", "Full Disk Encryption Setup", -1, 1200000) if InstallationWindow.Exists then msiexec.Window("MsiDialogCloseClass", "Full Disk Encryption Setup").Window("Button", "OK").ClickButton msiexec.Window("MsiDialogCloseClass", "Full Disk Encryption Setup").Window("Button", "&Next").ClickButton Set wndMsiDialogCloseClass = msiexec.Window("MsiDialogCloseClass", "Full Disk Encryption Setup") wndMsiDialogCloseClass.Window("Button", "", 1).Window("Button", "I &accept the terms in the License Agreement").ClickButton wndMsiDialogCloseClass.Window("Button", "&Next").ClickButton msiexec.Window("MsiDialogCloseClass", "Disk Encryption Setup").Window("Button", "&Next").ClickButton msiexec.Window("MsiDialogCloseClass", "Disk Encryption Setup").Window("Button", "&Next").ClickButton Set wndMsiDialogCloseClass = msiexec.Window("MsiDialogCloseClass", "Full Disk Encryption Setup") wndMsiDialogCloseClass.Window("Button", "", 4).Window("Button", "Do not initialize").ClickButton wndMsiDialogCloseClass.Window("Button", "", 5).Window("Button", "Do not initialize").ClickButton wndMsiDialogCloseClass.Window("Button", "&Next").ClickButton Sys.Refresh() msiexec.Window("MsiDialogCloseClass", "Full Disk Encryption Setup").Window("Button", "&Install").ClickButton Sys.Refresh() Set FinishWindow = msiexec.Window("MsiDialogCloseClass", "Full Disk Encryption Setup").WaitWindow("Button", "&Finish", -1, 1800000) if FinishWindow.Exists then msiexec.Window("MsiDialogCloseClass", "Full Disk Encryption Setup").Window("Button", "&Finish").ClickButton else Log.Warning "Finish window isn't found -> check the installation" end if else Log.Warning "Window is still not opened" end if End Sub