1

さて、このウェブサイトhttp://dogwars.com/app/

ログインなどができるアプリを作っています。

しかし、ウェブサイトのログインボタン:

<div style="margin-left: 77px; margin-top: 20px; height: 40px;">
   <a href="#" onclick="document.getElementById('loginForm').submit();" class="button"><span>Login</span></a>
  </div>

VB.net の自動送信ボタンには、これを使用します。

If curElement.GetAttribute("onclick").Equals("document.getElementById('loginForm').submit();") Then
            curElement.InvokeMember("click")
        End If

しかし、それは自動的にログインしません.なぜそうしないのか、私は困惑しています..?
誰か助けてくれませんか?ここに私の完全なコードがあります:

Public Class Form1

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    WebBrowser1.Navigate("http://dogwars.com/app/")

End Sub

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted

    Dim theElementCollection As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("input")

    For Each curElement As HtmlElement In theElementCollection

        Dim controlName As String = curElement.GetAttribute("name").ToString

        If controlName = "email" Then

            curElement.SetAttribute("Value", TextBox1.Text)

        ElseIf controlName = "password" Then

            curElement.SetAttribute("Value", TextBox2.Text)

        End If

    Next


    theElementCollection = WebBrowser1.Document.GetElementsByTagName("input")
    For Each curElement As HtmlElement In theElementCollection
        If curElement.GetAttribute("onclick").Equals("document.getElementById('loginForm').submit();") Then
            curElement.InvokeMember("click")
        End If
    Next
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub
End Class
4

1 に答える 1

0

HTML要素で物事を複雑にしすぎています。すべきことは次のとおりです。

            WebBrowser1.Navigate("http://dogwars.com/app/")

            Do Until WebBrowser1.ReadyState = WebBrowserReadyState.Complete
                Application.DoEvents()
            Loop

            WebBrowser1.Document.GetElementById("email").SetAttribute("value",TextBox1.Text())
            WebBrowser1.Document.GetElementById("password").SetAttribute("value",TextBox2.Text())
            WebBrowser1.Document.GetElementById("submit").InvokeMember("click")

それはおそらくうまくいくはずですが、テストしていません。

于 2014-10-01T13:27:52.733 に答える