Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Заполнение FORM в IE (http://forum.oszone.net/showthread.php?t=145182)

HORRIBLE 15-07-2009 11:58 1168123

Заполнение FORM в IE
 
Код:

#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 1168223

Сравни и найди ошибки:
Код:

#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 1168256

Спасибо.

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

beve 15-07-2009 15:21 1168413

Цитата:

Цитата HORRIBLE
А откуда узнать, что поле логин имеет 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 1169325

У меня стоит виста. Почему на ней все эти коды не работают и почти все примеры из справки тоже не работают.
Что бывает когда запускаешь выше приведенные коды:
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 1216177

Цитата:

Цитата beve
А узнать можна с помощью, например, DebugBar »

Подскажите, почему я установил DebugBar, а он не хочет отображать свою панель в IE 6 даже после нажатия вид - панели инструментов - DebugBar? Панель "гугл" отображает, а "дебагбар" не хочет.


Время: 17:19.

Время: 17:19.
© OSzone.net 2001-