PDA

Показать полную графическую версию : [решено] Вставка данных в веб-форму


aesir
19-02-2009, 17:11
День добрый! Подскажите, можна ли вставлять определенные данные в веб форму, например логин и пароль на сайте, и потом кликать на кнопку вход... Подскажите как написать такой скрипт?
Зараее спасибо

beve
19-02-2009, 17:41
Если бы ты еще ссылку на страницу в инете дал, тогда было бы проще, тебе. Но можеш и сам, вот пример входа на страницу в инете:
#include <IE.au3>
$oIE = _IECreate ("http://www.vgtrk.com/program/login.html")

$oUser =_IEGetObjByName($oIE,"login")
$oPass =_IEGetObjByName($oIE,"passwd")
$oSubmit = _IEGetObjByName($oIE, "log")
_IEFormElementSetValue ($oUser, 'Гав_Гав')
_IEFormElementSetValue ($oPass, 'Мой пароль')
Sleep(2000) ;здесь нужен только для того чтоб ты увидел что пароль и логин вводятся.
_IEAction ($oSubmit, "click")

aesir
19-02-2009, 17:47
Прикольно, т.е. даже неважно какой я браузер использую, или привязка к И.Е. будет?
Ну вобще меня интересует не совсем логин, а добавление новости на сайт(т.е. вставить Название новости, описание ее, и кликнуть тогда кнопку добавить...), ну ссылка например http://qiq.ru/post.php?add , правда нужно перед этим на сайте зарегится:)))

beve
19-02-2009, 17:50
Прикольно, т.е. даже неважно какой я браузер использую
Очень даже важно, ибо IE функции описанные в Autoit работают только в Internet Explorere.
И если тебе нужен не конкретный сайт, а просто сайты, на которых ты хочеш автоматом зарегестрироваться и потом автоматом новости добавлять, то автоматом для всех сайтов не сделаеш, но для конкретного сайта можно, пробуй, ибо я не вижу в этом смысла... хотя дело не сложное.

aesir
19-02-2009, 17:53
хм, логично из названия функций:) ну я так понял такие же операции можна спокойно проделать с множеством форм, большое спасибо за совет!

beve
19-02-2009, 17:58
ну я так понял такие же операции можна спокойно проделать с множеством форм

Действительно можно, только под конкретную страницу в инете, ибо даже название поля пароля и логина в коде html страниц могут быть разные, ну удачи. Если че, спрашивай...

aesir
19-02-2009, 18:00
только под конкретную страницу в инете, ибо даже название поля пароля и логина в коде html страниц могут быть разные
Само собой разумеется:) А я пользуюсь плагином для мозилы FireBug, там мона все эти дела отследить:)

упс, небольшая проблема....
<input type="submit" value="- Войти -"/>
Вот кнопка, у нее нету имени, как быть?:(((

aesir
19-02-2009, 20:28
Разобрался, кому интересно:

#include <IE.au3>

$oIE = _IECreate()
_IENavigate($oIE, "http://qiq.ru/")
_IELoadWait($oIE)
$oForm = _IEFormGetCollection($oIE, 0)
$oUserName = _IEFormElementGetObjByName($oForm, "login")
$oUserPwd = _IEFormElementGetObjByName($oForm, "pass")
$oAction = _IEFormElementGetObjByName($oForm, 3)
_IEFormElementSetValue($oUserName, "MyLogin")
_IEFormElementSetValue($oUserPwd, "MyPassword")
_IEAction($oAction, "click")


Пример входа для сайта qiq.ru

P.S. Оказывается AutoIt Реально клевый инструмент:))))

Space-06
20-02-2009, 10:33
простите за глупый вопрос: я не могу разобраться, пытаясь автоматизировать ввод данный на сайте
http://esbt74.ru/virtualnaja_priemnaja/priem_pokazaniy/

подскажите пожалуйста

aesir
20-02-2009, 11:23
простите за глупый вопрос: я не могу разобраться, пытаясь автоматизировать ввод данный на сайте
http://esbt74.ru/virtualnaja_priemnaja/priem_pokazaniy/
подскажите пожалуйста »
Значит как проще всего зделать: Берез мозилу и ставиш на нее плагин FireBug, потом будет оранжевый жук такой в правом нижнем углу окна мозилы, на него клацаеш откроется файрбаг, потом кнопку Inspect и наводиш на текстовое поле, а прога тебе покажет html разметку... ну а зная названия, смело приступай к написанию скрипта...

Sestrichka
24-02-2009, 11:14
Что означает в строке $oAction = _IEFormElementGetObjByName($oForm, 3) цифра 3?
Пытаюсь автоматизировать ввод логина и пароля на http://mail.ru/, но увы :not-me:
В html-коде так же нет поля name submit:
<td class="submit"><input type="submit" value="Войти" tabindex="5" class="submit" /></td>

Никто мне разницу не объяснит между _IEGetObjByName и _IEFormElementGetObjByName? Может есть нормальный справочный материал по AutoIt на русском кроме справки AutoIt3_2_5_4_ru? А то там уж слишком мало. Разобраться самой без нормальной справки тяжелова-то.

beve
24-02-2009, 12:47
Пытаюсь автоматизировать ввод логина и пароля на http://mail.ru/, но увы http://forum.oszone.net/images/smilies/new/not-me.gif

В html-коде так же нет поля name submit:

<td class="submit"><input type="submit" value="Войти" tabindex="5" class="submit" /></td>
С кодом помочь могу, а вот с объяснением...туго.
#include <IE.au3>
$oIE = _IECreate (" http://mail.ru/")
_IELoadWait ($oIE)
$oForm = _IEFormGetObjByName ($oIE, "Auth")
$oSelect = _IEFormElementGetObjByName ($oForm, "Domain")

$oUser =_IEGetObjByName($oIE,"login")
$oPass =_IEGetObjByName($oIE,"password")

_IEFormElementSetValue ($oUser, 'Гав_Гав')
_IEFormElementSetValue ($oPass, 'Мой пароль')

; При необходимости отмечаем чекбокс Чужой компьютер
_IEFormElementCheckboxSelect ($oForm, "1", "", 1, "byValue")

;Выбираем нужный домен из списка ниже, но только один
;_IEFormElementOptionSelect ($oSelect, "mail.ru", 1, "byValue")
;_IEFormElementOptionSelect ($oSelect, "inbox.ru", 1, "byValue")
;_IEFormElementOptionSelect ($oSelect, "bk.ru", 1, "byValue")
_IEFormElementOptionSelect ($oSelect, "list.ru", 1, "byValue")

; Дальше идет нажатие на кнопку Войти
_IEFormSubmit ($oForm)
Exit

Sestrichka
24-02-2009, 13:48
Спасибо ОГРОМНОЕ!!!! :up так долго сама тупила над этой задачей..
А на счет какой-нибудь литературки ничего не подскажешь? Или ты самостоятельно разбирался?

r35TnX
03-03-2009, 01:28
aesir
$oAction = _IEFormElementGetObjByName($oForm, 3) - не понимаю откуда вы взяли тройку... там в коде не увидел.

Просто тоже не могу "нажать" на кнопку <input class="edit" type="submit" value="Войти"/>

aesir
03-03-2009, 16:03
aesir $oAction = _IEFormElementGetObjByName($oForm, 3) - не понимаю откуда вы взяли тройку... там в коде не увидел. Просто тоже не могу "нажать" на кнопку

3-ка означает третюю по счету форму, в даном случае я ее нашел методом научного тыка:)) но как правило, формы аторизации идут первыми(т.е. 1-5 где-то так)

266903582
11-05-2009, 15:54
А как насчет формы, нарисованной яваскриптом? Если передавать ей текст, как html форме, результата нет...




© OSzone.net 2001-2012