mef-t
Осваивающий
- Сообщения
- 306
- Репутация
- 30
Добрый день.
Просьба помочь разобраться.
Использую библиотеку "FF.au3".
Есть необходимость находить элемент на странице и кликать по нему. Для этого использую "_FFClick()".
Если скрипт запускается уже на странице, то без проблем находит нужный элемент и выполняет клик.
Но если выполняется переход на другие страницы, где используются "_FFOpenURL()", "_FFSetValue()", "_FFFormSubmit()", и после отправки формы мы снова возвращаемся на прежнюю страницу, то после этих операций "_FFClick()" уже не работает.
Операция "_FFClick()" используется в отдельной функции, где все переменные переобъявляются как локальные.
Если в начале этой функции использовать "_FFDisConnect()" и "_FFConnect()", то все работает. Но это костыль.
Опять же перезапуск подключения говорит о том, что проблема может быть в самом подключении. Может где-то что-то хешируется или подобное.
Вопрос в том, сталкивались ли с подобным?
Функция во вложении. Первый клик проходит правильно. При повторном заходе в нее "_FFClick()" уже не работает. Используется рекурсия.
P.S. Пробовал добавлять длительные паузы. Не помогают.
Просьба помочь разобраться.
Использую библиотеку "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. Пробовал добавлять длительные паузы. Не помогают.