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

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

HORRIBLE 01-09-2009 20:34 1209090

Отправка заполненой формы в IE.
 
Здраствуйте.
Что получилось:
читать дальше »
PHP код:

;=======авторизация=====================
$new_wind _IECreate("http://vkontakte.ru/index.php")
_IELoadWaitTimeout(60000*2)
$oForm _IEFormGetObjByName($new_wind"login")
$login _IEFormElementGetObjByName  ($oForm"email")
$pass _IEFormElementGetObjByName  ($oForm"pass")
_IEFormElementSetValue ($login"windows-media-player@yandex.ru")
_IEFormElementSetValue ($pass"R255G0B0H0S100V100")    
_IEFormSubmit ($oForm)
_IELoadWaitTimeout(60000*2)
;===============================================
;======
Кого добавляем=========================
_IENavigate($new_wind,"http://vkontakte.ru/id1458553?94229")
_IELoadWaitTimeout(60000*2)
_IELinkClickByText $new_wind"Добавить в друзья")
if @
ERROR <> 7 then
if _IELinkClickByText $new_wind"Добавить личное сообщение") <> 7 then

;вот эта страшная форма
$oForm 
_IEFormGetObjByName($new_wind"addFriend")
$message _IEFormElementGetObjByName  ($oForm"message")
_IEFormElementSetValue ($oForm"Так просто текст")
_IEFormSubmit ($oForm) < ---- не получается отправить.

EndIf
EndIf
_IELoadWaitTimeout(60000*2



_IEFormSubmit ($oForm) почему то после этого отображается страничка (По вашему запросу ничего не найдено).
Вот код странички который показывает DebugBur при наведении на форму:
читать дальше »
HTML код:

<DIV style="WIDTH: 400px; HEIGHT: auto; MARGIN-LEFT: -210px; TOP: 182px" class="popup_box_container message_box" VK1251822580111="3"><DIV class=box_layout>
<DIV class=box_title_wrap>
<DIV class=box_title>Добавление в друзья</DIV></DIV>
<DIV class=box_body>
<DIV>
<FORM id=addFriendForm method=post name=addFriend>
<TABLE class=formTable border=0 cellSpacing=0>
<TBODY>
<TR class=tallRow>
<TD style="WIDTH: 118px; VERTICAL-ALIGN: top"><A id=to_url href="http://vkontakte.ru/id1458553"><IMG class=messageImage src="http://vkontakte.ru/images/question_b.gif"> </A></TD>
<TD style="PADDING-LEFT: 4px; VERTICAL-ALIGN: top">
<DIV style="MARGIN-BOTTOM: 6px">Вы хотите, чтобы <A href="http://vkontakte.ru/id1458553">####</A> был в списке Ваших друзей?</DIV>
<DIV>Мы оповестим его об этом, и он должен будет подтвердить, что вы друзья.</DIV><INPUT id=act value=accept_friend type=hidden name=act> <INPUT id=fid value=1458553 type=hidden name=fid> <INPUT id=hash value=1251822585_fe630ecbe72ea76ea2 type=hidden name=hash> <INPUT id=privacy_cats type=hidden name=cats> <INPUT value=1 type=hidden name=verbose>
<DIV style="MARGIN: 10px 0px"></DIV>
<DIV id=addMsg><SMALL>[ <A onclick="show('addMsgBox');hide('addMsg');return false;" href="http://vkontakte.ru/search.php?id=1458553#">Добавить личное сообщение</A> ]</SMALL> </DIV>
<DIV style="DISPLAY: none" id=addMsgBox>
<DIV style="MARGIN-BOTTOM: 4px">Личное сообщение: <A style="FONT-SIZE: 9px" onclick="hide('addMsgBox');show('addMsg');return false;" href="http://vkontakte.ru/search.php?id=1458553#">Скрыть</A></DIV><TEXTAREA style="WIDTH: 220px" rows=6 name=message></TEXTAREA> </DIV></FORM></TD></TR></TBODY></TABLE></FORM></DIV></DIV>
<DIV class=box_controls_wrap>
<DIV class=box_controls>
<DIV class="button_wrap button_no" VK1251822580111="5">
<DIV id=button0_1 class="box_button  ">Отмена</DIV></DIV>
<DIV class="button_wrap button_yes" VK1251822580111="6">
<DIV id=button0_2 class="box_button ">Добавить в друзья</DIV></DIV></DIV></DIV></DIV></DIV>



Спасибо.

timsky 02-09-2009 16:09 1209711

Держи, спамер :)

Код:

#include <IE.au3>
;=======авторизация=====================
$new_wind = _IECreate("http://vkontakte.ru/index.php")
_IELoadWaitTimeout(60000 * 2)
$oForm = _IEFormGetObjByName($new_wind, "login")
$login = _IEFormElementGetObjByName($oForm, "email")
$pass = _IEFormElementGetObjByName($oForm, "pass")
_IEFormElementSetValue($login, "windows-media-player@yandex.ru")
_IEFormElementSetValue($pass, "R255G0B0H0S100V100")
_IEFormSubmit($oForm)
_IELoadWaitTimeout(60000 * 2)
;===============================================
;======Кого добавляем=========================

_IENavigate($new_wind, "http://vkontakte.ru/id1458553?94229")
_IELoadWaitTimeout(60000 * 2)
_IELinkClickByText($new_wind, "Добавить в друзья")
If @error <> 7 Then
    Sleep(3000)
    If _IELinkClickByText($new_wind, "Добавить личное сообщение") <> 7 Then
        $message = _IEGetObjByName($new_wind, "message")
        _IEPropertySet($message, "innertext", "Так просто текст")
        Sleep(3000)
        $submit = _IEGetObjById($new_wind, 'button0_2')
        _IEAction($submit, 'click')
        If @error Then MsgBox(16, @error, @extended)

    EndIf
EndIf

_IELoadWaitTimeout(60000 * 2)

У тебя, кстати, и текст не прописывался этот: Так просто текст

Вот на такие даже спамерские вопросы с четким, готовым к отладке кодом очень интересно и приятно отвечать.
Слипы добавил для себя, для наглядности

HORRIBLE 02-09-2009 19:11 1209837

Странно, у меня текст (Так просто текст) добавлялся..........но бывало и обратное...........
Не знал, что можно так нажать:
Код:

$submit = _IEGetObjById($new_wind, 'button0_2')
        _IEAction($submit, 'click')

У меня немного другая цель,не спам, просто добавление людей для приложения в контакте, хотя и для спама тоже пойдет, только мне не зачем.
Спасибо.

timsky 02-09-2009 21:54 1209938

Да лана, не особо важно, для чего тебе это.
Ты бы пароль сменил теперь от акка на всякий случай :)
Цитата:

Цитата HORRIBLE
Не знал, что можно так нажать: »

Ну у тебя _IEFormSubmit не срабатывал потому что эта кнопка вне формы. Т.е. после закрывающего тега </form>

evg64 05-09-2009 18:45 1212211

Почему если я меняю открываемую анкету, скрипт перестает вносить данные в поле "Добавить сообщение"? Вот пример с другой анкетой. При запуске этого скритпа у меня не работает _IEPropertySet.

Код:

#include <IE.au3>
$new_wind=_IECreate("http://vkontakte.ru/id49650550")

_IELinkClickByText($new_wind, "Добавить в друзья")
If @error <> 7 Then
    Sleep(3000)
    If _IELinkClickByText($new_wind, "Добавить личное сообщение") <> 7 Then
        $message = _IEGetObjByName($new_wind, "message")
        sleep(1000)
        _IEPropertySet($message, "innertext", "Так просто текст")
        Sleep(3000)
        $submit = _IEGetObjById($new_wind, 'button0_2')
        ;_IEAction($submit, 'click')
        If @error Then MsgBox(16, @error, @extended)

    EndIf
EndIf


timsky 07-09-2009 01:50 1213000

Ну твой скрипт же не авторизуется. У меня нет акка ни на одной социалке, так что тестить не на чем.

HORRIBLE 08-09-2009 19:06 1214259

Чтобы добавлялся текст, когда страничка открыта или закрыта надо добавить:
PHP код:

$new_wind=_IECreate("http://vkontakte.ru/id49650550")
_IELoadWaitTimeout(60000 2)
_IELinkClickByText($new_wind"Добавить в друзья")
If @
error <> 7 Then
    Sleep
(3000)
    If 
_IELinkClickByText($new_wind"Добавить личное сообщение") <> 7 Then
       sleep
(1000)
      
$oform _IEFormGetObjByName ($new_wind"addFriend")    <--------- новая строка
      $message 
=_IEFormElementGetObjByName ($oForm"message") <--------- новая строка
      _IEPropertySet
($message"innertext""Так просто текст")
       
sleep(1000)
      
$submit _IEGetObjById($new_wind'button0_2')
      
_IEAction($submit'click')
      If @
error Then MsgBox(16, @error, @extended)
    EndIf
EndIf
_IELoadWaitTimeout(60000 2


evg64 09-09-2009 20:54 1215123

HORRIBLE, спасибо за дополнение. Есть вопрос по этому коду: как вы узнали, что форма называется именно addFriend, а не FriendАdd или Аdd?

HORRIBLE 09-09-2009 21:38 1215146

Не за что =).
Я такое же вопрос задал.вот в этой теме ...мне beve посоветовал вот эту програму: DebagBar. Программа может показать сколько форм на странице, какие элементы находятся в форме...и т.д. в общем любую интересующую информацию. Это через что можно узнать.

А само название формы: выдрал кусок....из страницы.
HTML код:

<FORM id=addFriendForm method=post name=addFriend>
тут куча текста......
</form>

Форма имеет имя=addFriend

evg64 09-09-2009 23:05 1215192

Еще раз спасибо)

80971815772 10-09-2009 02:40 1215271

$submit = _IEGetObjById($new_wind, 'button0_2')
_IEAction($submit, 'click')


Кому не трудно,обьясните пожалуйста про эти строчки? в частности button0_2 - я так понимаю єто кнопка ? как ее добывать так бы сказать ? из странички?

evg64 10-09-2009 22:19 1216115

Цитата:

Цитата 80971815772
$submit = _IEGetObjById($new_wind, 'button0_2')
_IEAction($submit, 'click')
Кому не трудно,обьясните пожалуйста про эти строчки? в частности button0_2 - я так понимаю єто кнопка ? как ее добывать так бы сказать ? из странички? »

Добывать ее имя либо копаясь в HTML странице, либо пользуясь прогой DebugBar. Первая строчка присваивает переменной $submit ссылку на кнопку "Добавить в друзья". Вторая строчка выполняет действие 'click' по той кнопке, на которую ссылается $submit.


Время: 02:41.

Время: 02:41.
© OSzone.net 2001-