Что нового

[Автоматизация] Ошибка при авторизации (ошибка IE.au3)

DeLeTeSHift

Знающий
Сообщения
46
Репутация
9
При запуске, скрипт вылетает с ошибкой IE.au3
Код:
>"D:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "D:\Program Files\AutoIt3\Script\Проекты\рс\левый.au3"
D:\Program Files\AutoIt3\Include\IE.au3 (2395) : ==> Variable must be of type "Object".:
If IsObj($o_object.document.getElementById($s_Id)) Then
If IsObj($o_object.document^ ERROR
>Exit code: 1    Time: 0.318
Раньше всё было нормально, но с какого то момента. по непонятным мне причинам, скрипт начал вылетать. Вот собственно и конфликтный фрагмент:
Код:
#include <IE.au3>

$oIE = ObjCreate("Shell.explorer.2")
$Form2 = GUICreate("RealSteelBot", 760, 730 , 50)
$GUIActiveX = GUICtrlCreateObj($oIE, -150, -107, 947, 849)
GUISetState()
$oIE.navigate("http://vk.com/app3274270_168690604?ref=1")

For $i = 1 To 1 ;поиска формы входа ввода логина и пароля
$sUrl = 'http://vk.com';адрес сайта присваеваем переменной $sUrl
    $oForm = _IEGetObjById($oIE, 'quick_login_form') ;поиск формы входа на сайт
    If @error Then ExitLoop; если ошибка- выход
   
    $oEmail = _IEFormElementGetObjByName($oForm, 'email') ;поиск поля ввода логина
    If @error Then ExitLoop; если ошибка- выход
    $oPass = _IEFormElementGetObjByName($oForm, 'pass');поиск поля ввода пароля
    If @error Then ExitLoop; если ошибка- выход
    _IEFormElementSetValue($oEmail, $Login);ввод логина $sLogin
    If @error Then ExitLoop; если ошибка- выход
    _IEFormElementSetValue($oPass, $Pass);ввод пароля $sPass
    If @error Then ExitLoop; если ошибка- выход
	   
    _IEFormSubmit($oForm);входим на сайт
    If @error Then ExitLoop;если ошибка- выход
Next

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch			
WEnd
Кто знает в чём проблема, подскажите.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: [Автоматизация] Ошибка IE.au3

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

Local $iState = 1
Local $sLogin = ''
Local $sPass = ''

$oIE = ObjCreate("Shell.explorer.2")
$oEvent = ObjEvent($oIE, '_Event_')

$Form2 = GUICreate("RealSteelBot", 760, 730 , 50)
$GUIActiveX = GUICtrlCreateObj($oIE, -150, -107, 947, 849)
GUISetState()

$oIE.navigate("http://vk.com/app3274270_168690604?ref=1")
_State($iState)

If _LogIn($sLogin, $sPass) Then Exit 

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch           
WEnd

Func _Event_DownloadComplete()
	If $oIE.ReadyState = 4  Then
		$iState = 0
	EndIf
EndFunc

Func _State(ByRef $iState)
	While $iState
		Sleep(100)
	WEnd
	$iState = 1
EndFunc

Func _LogIn($s_Login, $s_Pass)
	$oForm = _IEFormGetObjByName($oIE, 'login')
	If @error Then Return 1
	$oEmail = _IEFormElementGetObjByName($oForm, 'email')
	If @error Then Return 1
	$oPass = _IEFormElementGetObjByName($oForm, 'pass')
	If @error Then Return 1
	_IEFormElementSetValue($oEmail, $s_Login)
	If @error Then Return 1
	_IEFormElementSetValue($oPass, $s_Pass)
	If @error Then Return 1
	_IEFormSubmit($oForm)
	If @error Then Return 1
	Return 0
EndFunc
 
Автор
D

DeLeTeSHift

Знающий
Сообщения
46
Репутация
9
Re: [Автоматизация] Ошибка IE.au3

скрипт вылетел с вот такой ошибкой
Код:
>"D:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "D:\Program Files\AutoIt3\Script\Проекты\рс\левый.au3"
--> IE.au3 V2.4-0 Warning from function _IEFormGetObjByName, $_IEStatus_NoMatch
>Exit code: 0    Time: 1.039
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: [Автоматизация] Ошибка IE.au3

Скрипт который я вам написал, работает на ура. Почему у вас ошибка, сложно сказать, нужно смотреть ваш скрипт.
 
Автор
D

DeLeTeSHift

Знающий
Сообщения
46
Репутация
9
Re: [Автоматизация] Ошибка IE.au3

я запускал ваш скрипт без каких либо изменений, и всё же вылетела ошибка. Я переустановил autoit, но ошибка осталась(значит дело не в библиотеке)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: [Автоматизация] Ошибка IE.au3

Попробуйте поиграть со Sleep (как временный вариант задержки)
Код:
;...
$oIE.navigate("http://vk.com/app3274270_168690604?ref=1")
;_State($iState)
Sleep(3000) ; здесь
;...


или так:
Код:
;...
$oIE.navigate("http://vk.com/app3274270_168690604?ref=1")
;_State($iState)
_IELoadWait($oIE) ; здесь
;...
 
Автор
D

DeLeTeSHift

Знающий
Сообщения
46
Репутация
9
Re: [Автоматизация] Ошибка IE.au3

Ваша функция работает, но только если логин не совершён, в противном случае вылетает ошибка
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Автоматизация] Ошибка IE.au3

DeLeTeSHift
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Автоматизация] Ошибка IE.au3" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Администратор.
 
Верх