Войти

Показать полную графическую версию : [решено] Заполнение FORM в IE


HORRIBLE
15-07-2009, 11:58
#include <IE.au3>
$oIE = _IECreate ("http://i-jet.ru/forum/index.php")
$oForm = _IEFormGetCollection ($oIE, 0)
$oQuery = _IEFormElementGetCollection ($oForm, "vb_login_username")
_IEFormElementSetValue ($oQuery, "xaxa")
$oQuery_2 = _IEFormElementGetCollection ($oForm, "vb_login_password")
_IEFormElementSetValue ($oQuery_2, "123")


Не получается ввести значение 123 в поле пароля.
Спасибо.

beve
15-07-2009, 13:13
Сравни и найди ошибки:
#include <IE.au3>
$oIE = _IECreate ("http://i-jet.ru/forum/index.php")
$oForm = _IEFormGetCollection ($oIE, 0)


$oLogin = _IEFormElementGetCollection ($oForm, 0)
$oPass= _IEFormElementGetCollection ($oForm, 2)

_IEFormElementSetValue ($oLogin, "Login")
_IEFormElementSetValue ($oPass, "123")

_IELoadWait ($oIE)
_IEFormSubmit ($oForm)
Exit

HORRIBLE
15-07-2009, 13:34
Спасибо.

Я правильно понимаю. Если форма не имеет имя то необходимо использовать индекс в этой функции: _IEFormGetCollection ($oIE, 0) [тут он 0, а может быть другим числом, к примеру 10], то при использовании след. функции: _IEFormElementGetCollection ($oForm, 0) нельзя использовать имя объекта как у меня в моем 'горе' примере.
А откуда узнать, что поле логин имеет index = 0, а поле пассворда имеет index = 2 ?

beve
15-07-2009, 15:21
А откуда узнать, что поле логин имеет index = 0, а поле пассворда имеет index = 2 ? »
$oForm (в примере) - указывает на форму где вводятся имя и пароль.
_IEFormElementGetCollection ($oForm, 0) - указывает на элемент на этой форме (в данном случае этот элемент первый в списке наявных элементов): 1 элемент будет иметь значение 0, второй - 1 и т.д. А узнать можна с помощью, например, DebugBar », где в списке форм будут описаны все присуствующие на странице формы (первая форма в списке будет иметь индекс - 0), а когда расскрыть конкретную форму и посмотреть из каких элементов она состоит, то появится список элементов на этой форме (первый элемент будет иметь индекс - 0)...

Можна найти нужный элемент на форме и по имени так:
#include <IE.au3>
$oIE = _IECreate ("http://i-jet.ru/forum/index.php")
$oForm = _IEFormGetCollection ($oIE, 0)


$oLogin = _IEFormElementGetObjByName ($oForm, "vb_login_username")
$oPass = _IEFormElementGetObjByName ($oForm, "vb_login_password")

_IEFormElementSetValue ($oLogin, "Login")
_IEFormElementSetValue ($oPass, "123")

_IELoadWait ($oIE)
_IEFormSubmit ($oForm)
Exit

HORRIBLE
16-07-2009, 12:58
У меня стоит виста. Почему на ней все эти коды не работают и почти все примеры из справки тоже не работают.
Что бывает когда запускаешь выше приведенные коды:
1- открывается 2 окна ие (в одном грузится страничка по ссылке, а во втором ничего просто пытается к чему то подключиться)
2- а если написать $oIE = _IECreate ("http://i-jet.ru/forum/index.php", 0,0,0,1) ,то открывается одно окно ие в нем все грузится, но потом вылетает прога, ошибки:

C:\Program Files\AutoIt3\Include\IE.au3 (2547) : ==> The requested action with this object has failed.:
Return $o_object.document
Return $o_object.document^ ERROR

Это такая кривая виста или что то другое?

evg64
10-09-2009, 23:46
А узнать можна с помощью, например, DebugBar »
Подскажите, почему я установил DebugBar, а он не хочет отображать свою панель в IE 6 даже после нажатия вид - панели инструментов - DebugBar? Панель "гугл" отображает, а "дебагбар" не хочет.




© OSzone.net 2001-2012