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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Вставка данных в веб-форму (http://forum.oszone.net/showthread.php?t=132506)

aesir 19-02-2009 17:11 1043298

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

beve 19-02-2009 17:41 1043339

Если бы ты еще ссылку на страницу в инете дал, тогда было бы проще, тебе. Но можеш и сам, вот пример входа на страницу в инете:
Код:

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

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

beve 19-02-2009 17:50 1043349

Цитата:

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

aesir 19-02-2009 17:53 1043353

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

beve 19-02-2009 17:58 1043359

Цитата:

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

aesir 19-02-2009 18:00 1043360

Цитата:

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

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

aesir 19-02-2009 20:28 1043477

Разобрался, кому интересно:
Код:

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

простите за глупый вопрос: я не могу разобраться, пытаясь автоматизировать ввод данный на сайте
http://esbt74.ru/virtualnaja_priemnaja/priem_pokazaniy/

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

aesir 20-02-2009 11:23 1043846

Цитата:

Цитата Space-06
простите за глупый вопрос: я не могу разобраться, пытаясь автоматизировать ввод данный на сайте
http://esbt74.ru/virtualnaja_priemnaja/priem_pokazaniy/
подскажите пожалуйста »

Значит как проще всего зделать: Берез мозилу и ставиш на нее плагин FireBug, потом будет оранжевый жук такой в правом нижнем углу окна мозилы, на него клацаеш откроется файрбаг, потом кнопку Inspect и наводиш на текстовое поле, а прога тебе покажет html разметку... ну а зная названия, смело приступай к написанию скрипта...

Sestrichka 24-02-2009 11:14 1047223

Что означает в строке $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 1047336

Цитата:

Пытаюсь автоматизировать ввод логина и пароля на http://mail.ru/, но увы

В 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 1047400

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

r35TnX 03-03-2009 01:28 1053372

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

Просто тоже не могу "нажать" на кнопку
Код:

<input class="edit" type="submit" value="Войти"/>

aesir 03-03-2009 16:03 1053848

Цитата:

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

266903582 11-05-2009 15:54 1115490

А как насчет формы, нарисованной яваскриптом? Если передавать ей текст, как html форме, результата нет...


Время: 04:09.

Время: 04:09.
© OSzone.net 2001-