Войти

Показать полную графическую версию : Нужна помощь в написании скрипта автологина через веб-форму сайта


Rampages
04-09-2013, 13:23
Доброго всем дня!

возникла проблема с написанием скрипта автологина
пробовал на vbscript'е, но что-то он у меня ругается на отсутствие объекта
http://i.imgur.com/Yu7XkTn.png

вот код скрипта с ошибкой
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "http://keriowf6/"
While objIE.Busy
WScript.Sleep 200
Wend
Set objForm = objIE.Document.forms(0)
objForm.elements("username").value = "username"
objForm.elements("password").value = "password"
objForm.submit()

ругается на зачеркнутую строку
насколько понимаю, необходимо передать параметры в объект или что-то в этом роде...
подскажите пожалуйста где и что тут не так :(
абсолютно не знаком с vbscript/vb и javascript, схожие решения проблем видел, пробовал всяческие извращения, но правильный "костыль" собрать из этой солянки не смог.

возможно нужно было как-то пробежаться по структуре DOM, найти необходимые поля, заполнить их и отправить форму
или же отправить сразу POST со всеми необходимыми данными... но как и из чего собрать и отправить...


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="shortcut icon" type="text/x-icon" href="/nonauth/gfx/favicon.ico?v=dc5db99ae0693a83aca3d8370105e548">
<title>Страница входа в систему - Kerio WinRoute Firewall</title>
<link href="style/bodyNonauth.css?v=dc5db99ae0693a83aca3d8370105e548" rel="stylesheet" type="text/css">
<link href="style/common.css?v=dc5db99ae0693a83aca3d8370105e548" rel="stylesheet" type="text/css">
<link href="style/mainNonauth.css?v=dc5db99ae0693a83aca3d8370105e548" rel="stylesheet" type="text/css">
<link href="style/main.css?v=dc5db99ae0693a83aca3d8370105e548" rel="stylesheet" type="text/css">
<script src="onLoad.js?v=dc5db99ae0693a83aca3d8370105e548" type="text/javascript"></script>
</head>
<body onLoad="aep('username')">

<div id="freeSpace"></div>
<table id="contentTable">
<tr><td align="center"> <div class="dialog">
<div class="dialogHeader">
<div class="tab_UL"></div>
<div class="tab_UM">
<div class="tab_caption"><img src="gfx/kerio_logo.gif" width="300" height="20" alt="" ></div>
</div>
<div class="tab_UR"></div>
</div>
<div class="dialogBody">
<div class="dialogBgStrip">
<div class="dialogBg">
<div class="documentTitle"style="padding-bottom: 10px;"><img src="gfx/login.gif" width="24" height="24" alt="" >Страница входа в систему</div>
<span class="heading">Введите имя пользователя и пароль ниже</span>
<div class="loginCommon">
<form method="post" action="/internal/authenticate?internal=0"><table ><tbody><tr><td align="center"><table ><tbody><tr><td colspan="2" align="left"><div id="failure" style="height: 20px; padding: 5px 0 5px 0;"> </div></td></tr><tr><td class="bold">Имя польз.:</td><td><input type="text" name="username" id="username" size="15" class="textInput" ></td></tr><tr><td class="bold">Пароль:</td><td><input type="password" name="password" id="password" size="15" class="textInput" ></td></tr></tbody></table><table style="padding: 10px 0 10px 0;"><tbody><tr><td><input type="submit" value="Вход в систему" class="button" ></td></tr></tbody></table></td></tr></tbody></table></form>
</div>
</div>
</div>
</div>
<div class="dialogFooter">
<div class="tab_LL"></div>
<div class="tab_LM"></div>
<div class="tab_LR"></div>
</div>
</div> </td></tr>
</table>

</body>
</html>

Rampages
06-02-2014, 12:45
Эх никто так и не помог, недавно снова встала эта тема и наконец-то решил её сам и не без помощи гугла:

работающий код выглядит следующим образом:
Option Explicit

Const READYSTATE_COMPLETE = 4

Dim objIE
Dim objForm

Set objIE = WScript.CreateObject("InternetExplorer.Application")

With objIE
'.Visible = False
.Visible = True

.Navigate "http://piton/nonauth/login.php"

' Ждём…
Do
WScript.Sleep 100
Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE

' Заполняем форму #0
Set objForm = .Document.forms(0)

With objForm
.elements("username").value = "ЛОГИН"
.elements("password").value = "ПАРОЛЬ"

' Отправляем форму на сервер
.submit()
End With

' Ждём…
Do
WScript.Sleep 100
Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE

'Тут прочие действия, для чего, собственно и затевались…
End With

Set objIE = Nothing

WScript.Quit 0

после запуска остается открытым окно IE, пока не разобрался как его закрыть, но думаю не сложно.
да и по идее не очень то и надо.

P.S. Спс за не предоставленную помощь ;) в очередной раз убедился в полезности форумов.

Iska
06-02-2014, 13:32
P.S. Спс за не предоставленную помощь в очередной раз убедился в полезности форумов. »
Завсегда пжлст, в очередной раз убедился в претенциозности заявлений, подобных Вашему.

Ибо это (http://forum.script-coding.com/viewtopic.php?pid=18658#p18658) — мой код (и тоже на форуме :lol:).

Вы напрасно считаете, что на форумах кто-то кому-то чем-то всенепременно обязан, кроме оговоренного рамками Правил конкретного ресурса. Потому, высказывая своё «фи» подобным образом, Вы лишь демонстрируете свой культурный уровень окружающим. Не более.

Rampages
25-02-2014, 05:26
2Iska

Перед созданием темы пользовался поиском и даже более того пытался написать сам с нуля, не ища легких способов, но мои потуги были напрасны и я решился задать вопрос на форуме он тут висел довольно долго, тему не поднимал и благоразумно ждал.

Когда же все таки нашел решение за пределами форума, я отписался об этом, намекнув что раздел на форуме скорее мертв, чем жив.
Затем оказывается мой намек вызвал бурление г... и заставил таки кого-то отписаться, а кто-то даже посчитал полезным этот бесполезный комментарий с ссылкой ведущей на другой ресурс никак не связанный с этим сказал за это!

В следующий раз просто закрою тему без решения, ибо так оно видимо куда приятнее будет и мне и окружающим. А ещё лучше не буду создавать тему – одной меньше, одной больше мб вообще не будем на профильных форумах сидеть.

Вы напрасно считаете, что на форумах кто-то кому-то чем-то всенепременно обязан, кроме оговоренного рамками Правил конкретного ресурса. Потому, высказывая своё «фи» подобным образом, Вы лишь демонстрируете свой культурный уровень окружающим. Не более. »

я не настаиваю на том что кто-то что-то кому-то обязан/должен просто неоднократно пытался задавать вопросы на профильных форумах.
вопрос как мне кажется вполне нормально сформулирован, глубочайших познаний в этой области не требует, если тяжело подсказать бесплатно, предложите платные услуги в PM.

если вам так не нравится моё "Фи" пожалуйтесь модераторам, пущай удалят тему, мне уже как-то все равно.
и вы высказывая своё "Фи" лишь демонстрируете свой культурный уровень окружающим. Не более.
как то так.

Iska
08-03-2014, 04:50
Rampages, поиском научиться пользоваться — невелика доблесть. Ну, нашли код — хорошо. Выложили его сюда — вдвойне молодец. И ладно бы. Если б Вы на этом и закончили, всё было бы замечательно.

Но, то ли Вам просто захотелось выпендриться, то ли Вы сочли себя непонятно чем обиженным — Вы решили высказаться дополнительно. Причём в таком стиле, что в совокупности стало, скажем так, заметно попахивать. Своим следующим постом Вы лишь подтвердили сие.

намекнув что раздел на форуме скорее мертв, чем жив. »
«Спс за не предоставленную помощь в очередной раз убедился в полезности форумов» — это не намёк. И не «раздела на форуме», а всех форумов.

Итак, Вы взяли код. Со стороннего ресурса. Что примечательно — тоже с форума. Отношение к тому коду — если до Вас всё ещё не дошло («с ссылкой ведущей на другой ресурс никак не связанный с этим сказал за это»), хотя было выше сказано прямым текстом — я имею прямое и самое непосредственное, ибо аз автор его есмь. Как раз-таки я его там и выкладывал в процессе решения темы. В том числе и для того, чтобы люди им пользовались. Они, форумы, знаете, для того и предназначены — нести пользу людям посредством общения. Кстати, коль уж зашла речь, не подскажите — в чём, собственно, выражается самость решения («решил её сам»):
http://img827.imageshack.us/img827/5755/u1re.png
(вопрос, в общем-то, риторический)?! Но чьё именно авторство — тут совсем не важно. Для сути дела достаточно того, что не Ваше.

То есть — Вы в своём посте представляете код, а) найденный б) на форуме, в качестве а) «сам-решения», и б) тут же, одновременно, «поливаете» эти же самые форумы. И как, простите, после всего этого относиться к Вашим словам?! Для меня ответ однозначен.

Печально, что Вы не видите ничего, окромя «бурления говн», а суть претензии, очевидно, Вам осталась попросту недоступна.




© OSzone.net 2001-2012