为什么HtmlElement的元素等于null(Why elements of HtmlElement equal to null)
下面的代码每次都会让我崩溃,因为elements3为null,所以在我到达循环之前如何让elements3有一些元素
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)The below code gives me a crash every time because elements3 is null so how to make the elements3 have some elements before I reach the loop
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)最满意答案
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 ifGetElementsByTagName seems to return Nothing, which is normal behavior if there are no elements found in the standard DOM model (it doesn't return an empty list). So before iterating through the result, check for nothing.
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更多推荐
发布评论