Что нового

Остановка выполнения скрипта, до выполнения определенного условия

AlexVong

Новичок
Сообщения
112
Репутация
1
Всех с НОВЫМ ГОДОМ!!! :thumbs_up:
Как сделать чтобы выполнения скрипта остановилось до появления определенного условия?
Например:
Код:
$oDialogBox = _IEAttach("Справочник -- Диалоговое окно веб-страницы","DialogBox")
$oInput = _IETagNameGetCollection($oDialogBox, 'input', 2) 
_IEAction($oInput, 'click')

Часто скрипт выполняется быстрее чем определяется переменная $oInput, как определить что $oInput уже доступна и скрипт может продолжить свое выполнение?
Или точно такая же ситуация с фреймом:
Код:
_IENavigate($oIE, $sUrl)  ; переходим по ссылке
_IELoadWait($oIE)
$oFrame = _IEFrameGetCollection ($oIE, 0)
$t100 = _IEGetObjById($oFrame, 't100')
_IEFormElementSetValue($t100, '888')

Как определить что ифрейм уже доступен ->продолжить ввыполнение ->определить что доступен $t100 -> продолжить выполнение скрипта?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
AlexVong,
Попробуйте примерно так.
Код:
;~ ...
_IEErrorHandlerRegister()
;~ ...
$oDialogBox = _IEAttach("Справочник -- Диалоговое окно веб-страницы", "DialogBox")
$iTimer = TimerInit()
Local $fObj = False
While TimerDiff($iTimer) < 30000
	Sleep(500)
	$oInput = _IETagNameGetCollection($oDialogBox, 'input', 2)
	If IsObj($oInput) Then
		$fObj = True
		ExitLoop
	EndIf
WEnd
If $fObj Then
	_IEAction($oInput, 'click')
Else
	MsgBox(16, 'Error', '$oInput is not object')
EndIf
;~ ...
 
Верх