Что нового

Не удаётся авторизоваться

Anna

Новичок
Сообщения
119
Репутация
2
Здравствуйте.
Помогите, пожалуйста.
Буквально вчера работал, сегодня не хочет вводить логин и пароль.
Сайт переехал на новый адрес, но все ID остались прежними.

Код:
#include <IE.au3>

Global $sLogin = 'Anna',$oIE, $sPass = '333444',$sUrl = 'http://www.for.com/'
If IsObj($oIE) Then
  _IENavigate($oIE, $sUrl)
Else
  $oIE = _IECreate($sUrl)
EndIf

$oSubmit = _IEGetObjById($oIE, "linklogin")
_IEAction($oSubmit, "click")
$oLogin = _IEGetObjById($oIE, 'navbar_username')
If IsObj($oLogin) Then
  $oPass = _IEGetObjById($oIE, 'navbar_password')
  _IEFormElementSetValue($oLogin, $sLogin)
  _IEFormElementSetValue($oPass, $sPass)
  $oForm = _IEFormGetCollection($oIE, 0)
  _IEFormSubmit($oForm)
  _IELoadWait($oIE)
  For $i = 0 To 9
    If ControlGetText("[class:IEFrame]", "", "Edit1") = $sUrl Then ExitLoop
    Sleep(1000)
  Next
  $hCtrl = ControlGetHandle("[class:IEFrame]", "", "Internet Explorer_Server1")
  $oIE = __IEControlGetObjFromHWND($hCtrl)
  _IELoadWait($oIE)
EndIf
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,444
На IE11 (Win7x86 и Win10x64), а также на IE8 (WinXPsp3) работает без проблем.
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
InnI
Спасибо.
Скажите, пожалуйста, что значит запись в консоли и что делать.
Код:
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "D:\Мои документы\login_2017.au3"    
--> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidObjectType
--> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidObjectType
--> IE.au3 V2.4-0 Error from function _IEFormSubmit, $_IEStatus_InvalidObjectType
--> IE.au3 V2.4-0 Error from function _IELoadWait, $_IEStatus_InvalidObjectType (HTMLWindow2)
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,444
Anna
что значит запись в консоли
Эти записи указывают на ошибки в вызываемых функциях IE.au3. Насколько я понял из кода функции _IEFormElementSetValue() - объект не является полем ввода. Почему ваш IE так работает - не знаю. Могу предложить перезагрузить компьютер и попробовать ещё раз.

Вы ещё спросите "кто виноват" ;)
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
InnI
Кто виноват, я знаю :smile:
Нажимает кнопку “Войти”, появляется панель с полями для логина, пароля, но данные не вводятся.
Пробовала на IE 8 и на сервере IE 10
Есть ли другой способ авторизоваться?
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,444
Anna
другой способ авторизоваться
Попробуйте прямой ввод текста
Код:
#include <IE.au3>

Global $sLogin = 'Anna',$oIE, $sPass = '333444',$sUrl = 'http://www.forexdengi.com/'

$oIE = _IECreate($sUrl)

$oSubmit = _IEGetObjById($oIE, "linklogin")
_IEAction($oSubmit, "click")
$oLogin = _IEGetObjById($oIE, 'navbar_username')
If IsObj($oLogin) Then
  $oPass = _IEGetObjById($oIE, 'navbar_password')
  _IEAction($oLogin, "focus")
  Send($sLogin)
  _IEAction($oPass, "focus")
  Send($sPass)
  Send("{enter}")
  _IELoadWait($oIE)
  For $i = 0 To 9
    If ControlGetText("[class:IEFrame]", "", "Edit1") = $sUrl Then ExitLoop
    Sleep(500)
  Next
  $hCtrl = ControlGetHandle("[class:IEFrame]", "", "Internet Explorer_Server1")
  $oIE = __IEControlGetObjFromHWND($hCtrl)
  _IELoadWait($oIE)
EndIf
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
InnI сказал(а):
Попробуйте прямой ввод текста
Так, работает, спасибо.
Вспомнила, скрипт который раньше работал, был написан и скомпилирован в старой версии Autoit, уже и не помню в какой, я их несколько переустанавливала.
Подскажите, какую версию Autoit лучше использовать в ОС WinXPsp3.
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,444
Anna
какую версию Autoit лучше использовать в ОС WinXPsp3
Даже не знаю - на XP давно не работаю. Она у меня на виртуалке есть, но чисто для разовой проверки скриптов (как, например, в вашем случае). И установлена там последняя версия AutoIt 3.3.14.2.
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
InnI
OffTopic:
Удивительно, и у меня установлена AutoIt 3.3.14.2 а результат разный )
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,444
OffTopic:
Anna
у меня установлена AutoIt 3.3.14.2 а результат разный
Вероятно, в вашем случае результат зависит не от AutoIt, а от IE. И это легко проверить, установив предыдущие версии AutoIt.
 
Верх