タイトル : Re^5: WebBrpwser内で自動ログインを 投稿日 : 2012/08/21(Tue) 17:58 投稿者 : Arms
> 仮定のサイトではなく実際のサイトのソースコードを見ないと解りませんが、エラーが > 発生した部分のコードが間違っているか、その Document 内に "textfield" が無い等が > 考えられます。 > '下記の部分は省略しても OK(但し、何をしているかは理解して下さい) > If Not TypeName(sender) = "WebBrowser" Or e.Url <> myUrl Then > Exit Sub > End If > > 上記の部分は、必要なかったのでしょうか? > myUrl 以外が読み込まれていませんか? Public Class Form4 Private myUrl As Uri Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load myUrl = New System.Uri("http://www.sonomanma.co.jp/login.php") WebBrowser1.Url = myUrl End Sub Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted If Not TypeName(sender) = "WebBrowser" Or e.Url <> myUrl Then Exit Sub End If With WebBrowser1 .Document.GetElementById("textfield").SetAttribute("Value", "id") .Document.GetElementById("textfield2").SetAttribute("Value", "pass") .Document.All.GetElementsByName("submit")(0).InvokeMember("Click") End With End Sub End Class 省略可能のコードを付けた場合、「利用可能なソースがありません」と「オブジェクト参照がオブジェクト インスタンスに設定されていません。」のエラー2つ 省略可能のコードを付けない場合は「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と表示されます。 それ以上に大変なのは、コードを変更等すると With WebBrowser1 .Document.GetElementById("textfield").SetAttribute("Value", "id") .Document.GetElementById("textfield2").SetAttribute("Value", "pass") .Document.All.GetElementsByName("submit")(0).InvokeMember("Click") End With の部分がWebBrowser上で入力されなくなっています。 出来たり、出来なかったりなので原因がさっぱりわかりません…。 PCのOSがVistaに変更されたのも原因になるのでしょうか。 > エラーが発生したこの部分(特に "textfield" は)は、何を見て書かれたのでしょうか? > >.Document.GetElementById("textfield").SetAttribute("Value", "自Id") ログインしたいログイン画面のソースページから入力する部分のidを入力してます。 > ここのサンプル投稿用掲示板のサンプルを参考にして勉強して下さい。 サンプルを参考に勉強をさせて頂きます。あとは基礎をしっかり身につけていきたいと思います。 |