Что нового

[Автоматизация] Вход на сайт через GUI интерфейс

Renhor

Новичок
Сообщения
8
Репутация
0
Вот мой недоКОД, естественно не работает ( на сайт заходит дальше - 0 внимания )
(отрывок интерфейса гуи)
Код:
$nick = GUICtrlCreateInput ( "Ник", 40, 30, 60, 20)

$pass = GUICtrlCreateInput ( "Пароль", 115, 30, 60, 20)

$spisok = GUICtrlCreateCombo ( "Server1", 180, 30, 60, 20)
GUICtrlSetData($spisok, "Server2|Server3|Server4|Server5", "Server1" )

$login = GUICtrlCreateButton ( "Вход", 250, 30, 40, 20)


Func LogIn()
	$oIE = _IECreate ("www.battleknight.ru", 0, 1)
	$2nick = GUICtrlRead ($nick, 1)
	$2pass = GUICtrlRead ($pass, 1)
	$2spisok = GUICtrlRead ($spisok, 1)
	
	$oForm = _IEFormGetCollection ($oIE)
    $oLogin  = _IEFormElementGetObjByName($oForm,"user_name")
    $oPass   = _IEFormElementGetObjByName($oForm,"user_password")
	$oSelect   = _IEFormElementGetObjByName($oForm,"Server")
	$oServer = _IEFormElementOptionSelect($oForm, $2spisok, 1, "byName")
	
    _IEFormElementSetValue($oServer, $2spisok)
    _IEFormElementSetValue($oLogin, $2nick)
    _IEFormElementSetValue($oPass, $2pass)
    _IEFormSubmit($oForm,1)
	
	EndFunc
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Renhor [?]
Вот мой недоКОД, естественно не работает
Вот вам "недоОТВЕТ", естественно всё работает ;)
Код:
LogIn($hLogin, $hPass, $hServer)

Func LogIn($s_Login, $s_Pass, $s_Server)
    
    $sLogin = GUICtrlRead($s_Login)
    $sPass = GUICtrlRead($s_Pass)
    $sServer = GUICtrlRead($s_Server)
    
    $oIE = _IECreate ("www.battleknight.ru", 0, 1)
   
    $oForm = _IEGetObjById($oIE, "form")
    $oLogin  = _IEFormElementGetObjByName($oForm,"user_name")
    $oPass   = _IEFormElementGetObjByName($oForm,"user_password")
    $oSelect   = _IEFormElementGetObjByName($oForm,"Server")
    $oServer = _IEFormElementOptionSelect($oSelect, $sServer, 1, "byText")
    $oSubmit   = _IEFormElementGetObjByName($oForm,"Submit")

    _IEFormElementSetValue($oLogin, $sLogin)
    _IEFormElementSetValue($oPass, $sPass)
    _IEAction ($oSubmit, "click")

EndFunc
 
Автор
R

Renhor

Новичок
Сообщения
8
Репутация
0
Спасибо, разобрался :smile:

правда есть опечатка

вместо

Код:
$oSubmit   = _IEFormElementGetObjByName($oForm,"Submit")


юзаем

Код:
$oSubmit = _IEGetObjById($oForm, "submit")
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Renhor [?]
правда есть опечатка
Что поделать, старею, да и глаза уже не те! ;D
[box title=HTML]; из кода HTML сайта httр://www.battleknight.ru
<input type="submit" id="submit" value="Вход" name="Submit">[/box]


Добавлено:
Сообщение автоматически объединено:

В принципе не один из вариантов ошибкой не является!
Однако, так как мы обращаемся к форме по её id, и она не содержит одинаковых имён то смысла в
Код:
$oSubmit = _IEGetObjById($oForm, "submit")
IMHO нет! Другое дело если бы input не имел атрибут name.
 
Верх