Что нового

Как заполнить форму в интернете и отправить сайту?

Otherworld

Новичок
Сообщения
19
Репутация
0
Вот вопрос: Как заполнить поля формы? Проблема в том, что форма не имеет имени, а id, которое всегда разное (id1, idd, idf, и так далее). Как это можно сделать??
Вот код:
Код:
Func Login()
_IELoadWait($oIE)
$oForm = _IEGetObjByName($oIE, "id1")
$oText = _IEFormElementGetObjByName ($oForm, "login")
_IEFormElementSetValue ($oText, "икпук")
$oPassword = _IEFormElementGetObjByName ($oForm, "password")
_IEFormElementSetValue ($oPassword, "a1b2c3")
_IEFormSubmit ($oForm)
EndFunc

Здесь видно, что я назвал эту форму id1, но потом пытался снова залогиниться, и не получается. Просмотрев код страницы, я обнаружил, что id меняется постоянно. Кто-нибудь знает, что делать?
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
Otherworld
А форма на странице одна, или их много?
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
Otherworld
Вот этот кусочек скрипта может помочь в решении:

Код:
#include <IE.au3>
$oIE = _IECreate ("http://www.autoitscript.com")
$oForms = _IEFormGetCollection ($oIE)
$iNumForms = @extended
MsgBox(0, "Forms Info", "There are " & $iNumForms & " forms on this page")
For $i = 0 to $iNumForms - 1
    $oForm = _IEFormGetCollection ($oIE, $i)
    MsgBox(0, "Form Info", $oForm.name)
Next
 
Автор
O

Otherworld

Новичок
Сообщения
19
Репутация
0
Супер!!! То, что надо. Работает!!! :laugh:
Спасибо! :beer:
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
snoitaleR
А можно такую же штуку с Word'ом сделать? Т.е. получить в цикле все элементы документа.



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

Цель - хочу сделать поиск-замену (с помощью автоитовских регулярных выражений) по элементам вордовского текста. Про вордовский find-replace знаю, но он очень слабый.
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
Suppir
К сожалению, я не знаю такой возможности...
Стандартный модуль работы с WORD позволяет получить только коллекцию документов:
Код:
#include <Word.au3>
$oWordApp = _WordCreate ()
_WordDocAdd ($oWordApp)
$oDocuments = _WordDocGetCollection ($oWordApp)
MsgBox(0, "Document Count", @extended)
_WordQuit ($oWordApp)
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Да, я так тоже умею. А вот дальше... :-\ Нужно как-то пробежать по коллекции элементов и сделать поиск-замену в каждом из-них.
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
Suppir

OffTopic:

Как вариант, могу предложить сохранение документа WORD в формате веб-страницы, обработки страницы и обратная смена формата... :smile:
Вот еще полезная ссылочка...
 
Верх