2012-06-13 445 views
0

你好,我是使應用程序登錄到Nexon.net,我不能讓它的工作,因爲文本字段好像還沒有ID使用GetElementByID ....vb.net Web瀏覽器登錄

這是該網頁http://www.nexon.net/

,這是我試過的代碼,但它不工作=/

Dim Username, Password As String 
    Username = TextBox1.Text 
    Password = TextBox2.Text 


    WebBrowser1.Document.GetElementById("userID").SetAttribute("value", Username) 
    WebBrowser1.Document.GetElementById("password").SetAttribute("value", Password) 
    WebBrowser1.Document.GetElementById("gnt_login_submit").InvokeMember("click") 

我試圖用這個來驗證登錄,但不工作

If (Not WebBrowser1.Document.All.Item("gnt_play_button") Is Nothing) Then 
     MsgBox("Incorrect Username/password , ", 0, "Login error!") 

回答

0

使用Document.All代替:

WebBrowser1.Document.All("userName").SetAttribute("value", Username) 
WebBrowser1.Document.All("passwordName").SetAttribute("value", Password) 
WebBrowser1.Document.All("gnt_login_submitName").InvokeMember("click") 

代替id,元素的屬性name值傳遞給All如上所示。

+0

謝謝您的回答發送這些值,但一直給我NullReference錯誤=/ –

+0

這是登錄表單的樣子,「」 –

0

你的代碼工作正常,但概率。是您在頁面加載

填寫此

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

     WebBrowser1.Document.GetElementById("userID").SetAttribute("value", "User") 
     WebBrowser1.Document.GetElementById("password").SetAttribute("value", "Pass") 
     WebBrowser1.Document.GetElementById("gnt_login_submit").InvokeMember("click") 
    End Sub 

,並檢查

+0

如果用戶想要檢查用戶是否已登錄或者其用戶名不正確,請使用Getbetween之類的任何內容登錄然後會有一些文本,如歡迎或用戶名搜索它,然後顯示Msgbox(「正確的登錄」) &另外我會給你一點建議請嘗試使用HttpWebRequest它的快速和容易,並會給你相同的響應,如果你想檢查用戶已登錄或不等。 – TicTech

+0

我試過這樣做,但它does not似乎識別網頁中的ID或文本 –