Что нового

[Сеть, интернет] Ввод пароля в поле на форме

vcomp71

Осваивающий
Сообщения
431
Репутация
25
До этого на различных сайтах вводил пароли, в поле все было нормально.. Но тут
Есть такая букмекреская контора
http://www.marathonbet.com/ru/
Ну так вот

Код:
Func Marathon_Enter($login,$pass)


_IENavigate($oIE, $marathon_url)
;_IELoadWait($oIE)
sleep(3000)

	Local $oForm = _IEFormGetCollection($oIE, 0)
	Local $login_pole = _IEFormElementGetCollection($oForm, 3)
	Local $login_pass = _IEFormElementGetCollection($oForm, 2)
	_IEFormElementSetValue($login_pole, $login)
	_IEFormElementSetValue($login_pass, $pass)

	_IEFormSubmit($oForm)
;	_IELoadWait($oIE)

sleep(3000)

EndFunc


Вот такой стандартный кусок кода, вводт в поле пароль символы не под звездочками, а открытые, после чего система ругается, что пароль или логин не тот.

В связи с чем вопрос: как такое вообще может быть, что значение присваивается полю формы, а там, почему-то меняется тип отображения поля?
Если что, элемент вот так вот прописан на странице:

Код:
<INPUT class=" empty" tabIndex=3 value=Пароль: jQuery16207501506391378921="8" checkedByCssHelper="true">
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Насколько я понял, поле пароля прикрыто пустышкой. Попробуйте так
Код:
Local $oForm = _IEFormGetCollection($oIE, 0)
    Local $login_pole = _IEFormElementGetObjByName($oForm, "login")
    Local $login_empty = _IEFormElementGetCollection($oForm, 2)
    _IEAction($login_empty, "focus")
    Local $login_pass = _IEFormElementGetObjByName($oForm, "login_password")
    _IEFormElementSetValue($login_pole, $login)
    _IEFormElementSetValue($login_pass, $pass)
Возможно, обе строки с $login_empty можно будет убрать.


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

Настоящее поле пароля - первый элемент, а не второй
Код:
Local $login_pass = _IEFormElementGetCollection($oForm, 1)
 
Автор
vcomp71

vcomp71

Осваивающий
Сообщения
431
Репутация
25
А вот это уже интересно...
Как я сразу не догадался... Тупанул.. Надо было структуру формы сразу смотреть.

Да... Там элемент "пароль" другой

Код:
<INPUT style="DISPLAY: none" id=auth_login_password tabIndex=3 value="" maxLength=100 type=password name=login_password jQuery16207501506391378921="9" pregex="^.{6,}$" rel="Пароль:" checkedByCssHelper="true">

Только вот зачем это делать? Чтобы пароль не могли перехватить? Для препятствования автоматизации, это как-то всё непонятно, в принципе, даже вконтакте так не делают. Странно все это...
 
Верх