tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^9: WebBrpwser内で自動ログインを
投稿日: 2012/08/23(Thu) 16:43
投稿者Arms
> Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
>    WebBrowser1.ScriptErrorsSuppressed = True
>    myUrl = New System.Uri("https://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
>       If .Document.Body.InnerText.IndexOf("ログインに失敗しました。") >= 0 Then
>          Exit Sub
>       End If
>       .Document.GetElementById("textfield").SetAttribute("Value", "自ID")
>       .Document.GetElementById("textfield2").SetAttribute("Value", "自Pass")
>      ' .Document.Forms(1).InvokeMember("Submit")
>       .Document.GetElementsByTagName("input").Item(7).InvokeMember("Click")
>  '又は、 .Document.All.GetElementsByName("Submit").Item(0).InvokeMember("click")
>  ' "Submit" は、大文字・小文字が区別されますので注意
>    End With
> End Sub

上のコードで試したところやはり再度開こうとするとエラーが表示されます。

コード変更になるのか分りませんが、ランチャからボタンを押して別フォーム(今作成中の内容)を表示というような動作をしています。一度目ボタンを押すとちゃんと自動ログインをされるのですが、二度目ボタンを押すとログインエラーと共にDocument.GetElementById("textfield").SetAttribute("Value", "自ID")の部分で「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と表示されます。

ログインしてるかしてないかの判断(if文)できればいいのですが、アドバイスをよろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。