2013-04-18 62 views
1

好了,所以这个网站http://dogwars.com/app/提交按钮上的网页浏览器的HTML元素

我在做一个应用程序,你可以登录之类的东西。

但网站上的登录按钮:在VB.net

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

为我自动提交按钮我用这个:

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 
+0

你什么意思,你要自动登录 – 2013-04-18 04:36:31

+0

它就像一个自动登录的事情,在那里我在我的用户名和密码键入并加载网站进入细节并按下登录按钮我。 – user2293453 2013-04-18 04:37:29

+0

它如何知道您输入密码的时间? – 2013-04-18 04:38:06

回答

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") 

这应该可能工作我还没有测试过它。