2014-01-24 19 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 
相关问题