情報を追跡する仕事用に作成したプログラムがあります。この情報は、さまざまなイントラネット サイトから入手します。私は自分のプログラムにフォームを組み込みたいと考えています。これは基本的にカスタマイズされた Web ブラウザーであり、これらのサイトをより簡単にナビゲートできるようになります。これは私にとって学習プロジェクトなので、私の経験不足を許してください。
この質問については、ブラウザー コントロールを使用してページを読み込んだ後、文字列に格納された資格情報からそのページにログインできる方法を探しています。この情報を入力しようとしているサイトの HTML コードにアクセスできず、GetElementId を介してこれを行う方法に関する多くのチュートリアルを見てきましたが、Firebug を使用した後、入力する必要がある 2 つのテキストボックスのどちらも見つかりませんでしたID(とにかく見ることができます)。サイトは決して変更されず、GetElementFromPoint の使用を検討しましたが、この方法でどのように処理すればよいか分からず、最適とは思えませんでした。GetElementsByTagName が最善の方法のようですが、コードの実装方法がわかりません。
これは、firebugから取得できた2つの要素の情報です。
ユーザー名テキストボックス:
<input type="text" name="j_username" size="12" onblur="this.value=this.value.toLowerCase(); setUserIdCookie();" click="this.value=this.value.toLowerCase();" onkeyup="this.value=this.value.toLowerCase();">
パスワードテキストボックス:
<input type="password" onkeypress="checkCapsLock( event )" name="j_password" size="12">
たとえば、WinformusernameString
から j_username に渡し、次にj_password に渡し、Web コントロール内のボタンpasswordString
をクリックする 必要があります。<input type="submit" name="submit" value="Login">
この 1 つのサイトからこれを行う方法のアイデアを得ることができれば、他のサイトにも実装するのに十分な学習ができるはずです。
ご協力ありがとうございます。他の情報が必要な場合はお知らせください。
完全な HTML コード:
<form method="POST"action="j_security_check" name="login">
<table border="0"width="30%"cellspacing="3"cellpadding="2">
<tr>
<td class="default"><b>Login</b></td>
<td class="default"><input onkeyup="this.value=this.value.toLowerCase();"
click="this.value=this.value.toLowerCase();"
onblur="this.value=this.value.toLowerCase(); setUserIdCookie();"
type="text"size="12" name="j_username"></td>
</tr>
<tr>
<td class="default"><b>Password</b></td>
<td class="default"><input type="password" size="12"
name="j_password"onKeyPress="checkCapsLock( event )"></td>
</tr>
<tr>
<td colspan="2" align="center"><p class="default">
<inputtype="submit"value="Login"name="submit"></td>
</tr>
</table>
</form>
編集
ボックスに入力する方法を見つけました
var x = webBrowser1.Document.All.GetElementsByName("j_username");
x[0].InnerText = (usernameString);
var y = webBrowser1.Document.All.GetElementsByName("j_password");
y[0].InnerText = (passwordString);
しかし、ログインボタンをクリックする方法を理解するのに苦労しています