Как я могу дождаться закрытия окна и выполнить любую операцию в QTP?

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

Означает, что я хочу дождаться открытия этого окна без использования жестко закодированной функции «Wait()».

Есть ли какой-либо метод в VBScript или QTP, который удовлетворяет мои потребности?


person Ankit Tewari    schedule 12.09.2014    source источник
comment
Status собственность. Предоставляет информацию о состоянии сценария, запущенного с помощью метода Exec(). Свойство Status возвращает значение перечисляемого типа: WshRunning (= 0) Задание все еще выполняется. WshFinished ( = 1) Задание выполнено.   -  person JosefZ    schedule 13.09.2014
comment
Можно поподробнее на примере? Я имею в виду, что диалог открывается в окне Java, и я хочу дождаться закрытия диалога. Как я могу выполнить его в QTP в иерархии этого диалога? Например: Dialog(xy) добавляется в OR QTP. Теперь я хочу дождаться появления этого диалога. Итак, как я могу это сделать?   -  person Ankit Tewari    schedule 13.09.2014
comment
В чистом vbscript: `Dim WshShell: Set WshShell = CreateObject(WScript.Shell): Dim oExec: Set oExec = WshShell.Exec(calc): Do While oExec.Status = 0: WScript.Sleep 100: Loop: WScript.Echo oExec .Статус `   -  person JosefZ    schedule 13.09.2014


Ответы (1)


Вы можете попробовать метод «WaitProperty» в своем окне, чтобы определить, когда свойство visible становится ложным, но это может вызвать ошибку, когда окно больше недоступно. В противном случае вы всегда можете зацикливаться до тех пор, пока он больше не будет существовать.

While Window("My Window").Exist(0)
    Wait 0, 500 ' Pause briefly before looking again
Wend
person HgCoder    schedule 12.09.2014