amit_upadhyay Ответов: 1

автоматическое заполнение веб-формы с помощью vb.net


то бесплатный microsoft word плагин сводит меня с ума. Я пытаюсь заполнить html-формы через vb.net использование управления веб-браузером и метода GetElementById.

На домашней странице блогера, когда я пытаюсь войти в систему,я должен заполнить имя пользователя, passowrd и затем нажать на кнопку Отправить. При просмотре HTML-источника страницы я получаю элементы в виде :


<big></big><h2>Sign in to use Blogger<br> with your Google Account</br></h2>
<div class="input-holder"><label for="Email">Username (Email):</label>
<input type="text" size="10" name="Email" id="Email" class="text" dir="ltr" tabindex="1"></input></div>
<div class="input-holder"><label for="Passwd">Password:
(<a href="http://www.blogger.com/forgot.g" title="Forgot your password?">?</a>)</label>
<input type="password" size="10" tabindex="2" name="Passwd" id="Passwd" class="text" autocomplete="off" dir="ltr"></input></div>
<div id="PersistentCookie-holder"><input type="checkbox" name="PersistentCookie" id="PersistentCookie" tabindex="3" value="yes">

<label for="PersistentCookie">Remember me</label>
(<a href="http://help.blogger.com/bin/answer.py?answer=42054" target="_top" title="What is "remember me"?">?</a>)</input></div>
<div id="signin-btn-holder"><script type="text/javascript">
  document.write("\x3cspan id\x3d\x22signin-btn\x22 class\x3d\x22ubtn\x22 onclick\x3d\x22if (this.className.indexOf(\x26quot;ubtn-disabled\x26quot;) \x3d\x3d -1) {var e \x3d document[\x26#39;login\x26#39;].ok;(e.length) ? e[0].click() : e.click(); if (window.event) window.event.cancelBubble \x3d true; return false;}\x22\x3e\x3cspan class\x3d\x22left\x22\x3e\x3cspan\x3e\x26nbsp;\x3cimg src\x3d\x22/img/blank.gif\x22 width\x3d\x221\x22 height\x3d\x221\x22 alt\x3d\x22\x22\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e\x3cspan class\x3d\x22i\x22\x3e\x3ca href\x3d\x22javascript:void(0)\x22 tabindex\x3d\x224\x22 onclick\x3d\x22return false;\x22\x3eSign in\x3c/a\x3e\x3c/span\x3e\x3cspan class\x3d\x22right\x22\x3e\x3cspan\x3e\x26nbsp;\x3cimg src\x3d\x22/img/blank.gif\x22 width\x3d\x221\x22 height\x3d\x221\x22 alt\x3d\x22\x22\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e\x3c/span\x3e");
</script>
<script type="text/javascript">
  document.write("\x3cinput type\x3d\x22submit\x22 id\x3d\x22signin-btn-hidden\x22 name\x3d\x22ok\x22 value\x3d\x22Sign in\x22 tabindex\x3d\x22-1\x22 style\x3d\x22position:absolute; display:block; width:0; padding:0;                z-index:-1; border:none; top:-5000px; left:-5000px\x22\x3e");
</script>
<noscript><input type="submit" id="signin-btn-ns" class="ubtn ubtn-inline" name="ok" tabindex="4" value="Sign in"></input></noscript></div>
<div class="r"></div>



Итак, я получаю элементы по их идентификатору, и теперь мой код :

<big>WebBrowser1.Document.GetElementById("Email").SetAttribute("value", "amit.tcet")
            WebBrowser1.Document.GetElementById("Passwd").SetAttribute("value", "151100151105")
            WebBrowser1.Document.GetElementById("signin-btn-ns").InvokeMember("click")</big>


но кнопка не нажата, и поэтому я не могу войти в систему.

есть идеи, что не так?

1 Ответов

Рейтинг:
1

PSK_

Я сделал нечто подобное здесь.

Здесь[^]

или попробуйте что-нибудь вроде следующего.


mshtml.HTMLDocument obj;
obj=(mshtml.HTMLDocument)WebBrowser1.Document;
obj.getElementById("signin-btn-ns").click();


amit_upadhyay

спасибо но так как я использую vb.net не могли бы вы сказать мне, какой будет вторая строка в vb.net ?

amit_upadhyay

получил его vb.net (directcast), но это не работает. Я смог автоматически заполнить два других сайта блога : blog.com и blog.co.in (без mshtml) но блоггер, похоже, не работает.