2014-01-24 30 views
0

下面的代碼給我的每一次崩潰,因爲elements3是空,因此如何使elements3有一些元素之前我到達環爲什麼的HtmlElement相等的元素爲null

Dim elements3 As HtmlElement 
    For Each elements3 In WebBrowser3.Document.GetElementsByTagName("textarea") 
     If elements3.GetAttribute("tabindex") = "1" Then 
      elements3.SetAttribute("value", Text_TO_Pass_2) 
     End If 
    Next 

    For Each webpageelemnt3 As HtmlElement In WebBrowser3.Document.GetElementsByTagName("input") 
     If webpageelemnt3.GetAttribute("name") = "sbutton" Then 
      If webpageelemnt3.GetAttribute("tabindex") = "1" Then 
       webpageelemnt3.InvokeMember("click") 
      End If 
     End If 
    Next 


    Threading.Thread.Sleep(5000) 
    WebBrowser3.Navigate(TextBox3.Text) 
+1

究竟是什麼問題?異常說什麼,什麼行引發異常? 「它崩潰了,我該如何解決它?」不是問題描述。 – David

+0

你還沒有真正將elements3設置爲任何東西,你已經告訴你的編譯器爲它分配內存,但是你永遠不會初始化它...... – Mike

+0

[檢查這個鏈接,我確定你可以修改這個代碼來爲你工作裝置](http://msdn.microsoft.com/en-us/library/system.windows.forms.htmlelement(v = vs.110)的.aspx) – Mike

回答

0

GetElementsByTagName彷彿回到Nothing,如果在標準DOM模型中沒有找到元素(它不返回空列表),這是正常行爲。因此,在迭代結果之前,請檢查一下。

Dim elements3 As HtmlElement 
elements3 = WebBrowser3.Document.GetElementsByTagName("textarea") 

If Elements3 IsNot Nothing Then 
    For Each elements3 In WebBrowser3.Document.GetElementsByTagName("textarea") 
     If elements3.GetAttribute("tabindex") = "1" Then 
      elements3.SetAttribute("value", Text_TO_Pass_2) 
     End If 
    Next 
End if 
相關問題