Несколько способов:
Самый простой способ - использовать скрытый метод синхронизации для объекта страницы:
oPage.sync ' Where oPage is your page object
Если это не работает, вы можете получить свойство wait вашего объекта браузера:
if oBrowser.WaitProperty("state", micRegExpMatch("4|complete"), 60 * 1000) then
msgbox "Browser is ready!"
else
msgbox "Even after 1 minute, the browser is not ready :("
end if
В качестве альтернативы вы можете получить строку состояния, текст и посмотреть, есть ли в ней текст «Ожидание» (только для IE)
Set oStatusBar = Browser("micclass:=Browser").WinStatusBar("nativeclass:=msctls_statusbar32")
Do : Loop Until instr(oStatusBar.GetROProperty("text"), "Waiting") = 0
Или индикатор выполнения:
Set oProgressBar = Browser("micclass:=Browser").WinObject("nativeclass:=msctls_progress32")
Do : Loop Until oProgressBar.getROproperty("visible")
(Код упрощен. Как вы знаете, QTP, вы должны проверить наличие объектов и свойств, прежде чем получить к ним доступ.)