Здравствуйте.
пробую залогиниться на сайт, в случае ошибки по капче пробую снова и получаю ошибку:
все ломается на _IEFormElementSetValue($oLogin, $sLogin) после него даже сообщение не выходит.
не могу понять в связи с чем ошибка появляется. при первом прогоне цикла - все отлично, и если он удачный то работа идет дальше. Но при повторном - все мрет, при том что значение в переменной логина $sLogin - не меняется, проверял сообщением.
прошу помощи.
Добавлено:
где бы это прочесть, но видимо при присвоении хендлов.... присваивается координата объекта?! :stars:
так или иначе, но проблема решилась включением присвоения хендлов в цикл и определение их каждый раз заново. Так как страница одна и таже думал что этого достаточно сделать один раз.
пробую залогиниться на сайт, в случае ошибки по капче пробую снова и получаю ошибку:
Код:
C:\Program Files\AutoIt3\Include\IE.au3 (1299) : ==> The requested action with this object has failed.:
If String($o_object.type) = "file" Then
If String($o_object.type^ ERROR
все ломается на _IEFormElementSetValue($oLogin, $sLogin) после него даже сообщение не выходит.
Код:
#include <IE.au3>
#include <ScreenCapture.au3>
#include <_antigatecom.au3>
$sLogin = '####'
$sPass = '####'
$sUrl = 'http://####/login.php'
$oIE = _IECreate($sUrl)
WinSetState("[CLASS:IEFrame]", '', @SW_MAXIMIZE)
$oLogin = _IEGetObjById($oIE, 'login_username')
$oPass = _IEGetObjById($oIE, 'pwd')
$oCapchEntr = _IEGetObjById($oIE, 'captcha')
$oCapchImg = _IEGetObjById($oIE, 'capimg')
$oButton = _IEGetObjByName($oIE, 'Login2')
$capx = _IEPropertyGet($oCapchImg, "screenx")
$capy = _IEPropertyGet($oCapchImg, "screeny")
;;MsgBox(0, 'координата х/y', "x:" & $capx & "y:" & $capy )
While 1
While 1
FileDelete("D:\####\captcha.jpg")
_ScreenCapture_Capture("D:\####\captcha.jpg", $capx, $capy, $capx + 100, $capy + 30)
$ccapch = _antigatecom_get("####", "D:\####\captcha.jpg", 2)
If StringInStr($ccapch, "ERROR") = 0 Then ExitLoop
WEnd
MsgBox(0, 'капча:', $ccapch )
MsgBox(0, 'логина данные', $sLogin & " " & $oLogin )
_IEFormElementSetValue($oLogin, $sLogin) ;; при повторном проходе скрипт дохнет тут
MsgBox(0, 'логин', @error & " " & @Extended )
MsgBox(0, 'пароля данные', $sPass & " " & $oPass )
_IEFormElementSetValue($oPass, $sPass)
MsgBox(0, 'пасс', @error & " " & @Extended )
_IEFormElementSetValue($oCapchEntr, $ccapch)
MsgBox(0, 'капча', @error & " " & @Extended )
_IEAction($oButton, "click")
MsgBox(0, 'кнопка', @error & " " & @Extended )
_IELoadWait($oIE)
MsgBox(0, 'ввод', @error & " " & @Extended )
;;$kUrl = _IEPropertyGet($oIE, "locationurl")
Opt("WinTitleMatchMode", 2)
If WinActive("Watching Ad - Ваш аккаунт") <>0 Then ExitLoop
Sleep(1000)
_IENavigate($oIE, $sUrl)
WEnd
;;$aUrl =
_IENavigate($oIE, 'http://####/acc.php')
не могу понять в связи с чем ошибка появляется. при первом прогоне цикла - все отлично, и если он удачный то работа идет дальше. Но при повторном - все мрет, при том что значение в переменной логина $sLogin - не меняется, проверял сообщением.
прошу помощи.
Добавлено:
Сообщение автоматически объединено:
где бы это прочесть, но видимо при присвоении хендлов.... присваивается координата объекта?! :stars:
так или иначе, но проблема решилась включением присвоения хендлов в цикл и определение их каждый раз заново. Так как страница одна и таже думал что этого достаточно сделать один раз.