Что нового

_FFClick отказывается работать после некоторых событий

mef-t

Осваивающий
Сообщения
306
Репутация
30
Добрый день.

Просьба помочь разобраться.
Использую библиотеку "FF.au3".
Есть необходимость находить элемент на странице и кликать по нему. Для этого использую "_FFClick()".
Если скрипт запускается уже на странице, то без проблем находит нужный элемент и выполняет клик.
Но если выполняется переход на другие страницы, где используются "_FFOpenURL()", "_FFSetValue()", "_FFFormSubmit()", и после отправки формы мы снова возвращаемся на прежнюю страницу, то после этих операций "_FFClick()" уже не работает.

Операция "_FFClick()" используется в отдельной функции, где все переменные переобъявляются как локальные.
Если в начале этой функции использовать "_FFDisConnect()" и "_FFConnect()", то все работает. Но это костыль.

Опять же перезапуск подключения говорит о том, что проблема может быть в самом подключении. Может где-то что-то хешируется или подобное.

Вопрос в том, сталкивались ли с подобным?

Функция во вложении. Первый клик проходит правильно. При повторном заходе в нее "_FFClick()" уже не работает. Используется рекурсия.
Код:
Func LoopClick()
	Local $iCount = 0
	Local $oRune = ''
	Local $oTag = ''
	Local $oClass = ''
	Local $oTemp = ''

	$nTagCount = _FFGetLength('a')
	For $i = 0 To $nTagCount-1
		$oTemp = _FFObjGet("a", "tag", $i)
		$oClass = _FFObj($oTemp, "className")
		If StringInStr($oClass, 'discardable') > 0 Then
			If $iCount = 0 Then
				$oRune = $oTemp
				$oTemp = ''
				$iCount = 1
			Else
				_FFClick($oRune, 'elements')

				If @error > 0 Then
					ConsoleWrite('@error = ' & @error & @CRLF)
					_FFDisConnect()
					Exit
				EndIf

				Do
					$oTag = _FFObjGet("update-content-modal-sca-combat-victory-0", "id")
				Until $oTag <> ''

				_FFOpenURL($sHref & $sLogOut)
				Do
					$oTag = _FFObjGet("user", "id")
				Until $oTag <> ''
				_FFOpenURL($sHref & $sAdventures)
				Do
					$oTag = _FFObjGet("user", "id")
				Until $oTag <> ''
				_FFSetValue($sMail, "user", 'id')
				_FFSetValue($sPass, "pass", 'id')
				_FFFormSubmit(0, "index", "click")
				Do
					$oTag = _FFObjGet("update-content-sca-combat-0", "id")
				Until $oTag <> ''
				LoopClick()
				Return
			EndIf
		EndIf
	Next
EndFunc

P.S. Пробовал добавлять длительные паузы. Не помогают.
 
Верх