簡體   English   中英

帶有html元素的Web瀏覽器上的Submit按鈕

[英]Submit button on web browser with html element

好的,所以這個網站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

您已經使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")

那可能應該起作用,盡管我還沒有測試過。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM