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

タイトル 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を入力してます。


>  ここのサンプル投稿用掲示板のサンプルを参考にして勉強して下さい。

サンプルを参考に勉強をさせて頂きます。あとは基礎をしっかり身につけていきたいと思います。

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

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