我在这里检查是否 WebBrowserEx1.Document.All.Item(t).OuterHtml 等于 abc ,但尽管它们是相同的,它不接受它们相同,并且不执行if语句中的代码。盲人是我还是Visual Basic?
Big Pic:http://i.stack.imgur.com/hVjpH.png
编辑:
For t = 1 To WebBrowserEx1.Document.All.Count
Dim abc = "<LI style=""PADDING-BOTTOM: 2px; PADDING-TOP: 2px"">Hata oluştu. İşlem tamamlanamamıştır. "
If WebBrowserEx1.Document.All.Item(t).OuterHtml = abc Then
WebBrowserEx1.Navigate("http://uyg.sgk.gov.tr/vizite/tarihGiris.do")
loc = "giris"
WebBrowserEx1.Update()
yeniSayfa = True
Exit For
End If
Next
观看中的WebBrowserEx1.Document.All.Item(t).OuterHtml的值: “Hataoluştu.İşlemtammlanamamıştır。”
观看abc的价值: “Hataoluştu.İşlemtammlanamamıştır。”
我认为大图应该更具说明性。
第二次尝试进行类型修正
For t = 1 To WebBrowserEx1.Document.All.Count
Dim abc As String
abc = "<LI style=""PADDING-BOTTOM: 2px; PADDING-TOP: 2px"">Hata oluştu. İşlem tamamlanamamıştır. "
If WebBrowserEx1.Document.All.Item(t).OuterHtml = abc Then
WebBrowserEx1.Navigate("http://uyg.sgk.gov.tr/vizite/tarihGiris.do")
loc = "giris"
WebBrowserEx1.Update()
yeniSayfa = True
Exit For
End If
Next
答案 0 :(得分:1)
请注意右列中每个对象的类型。由于abc变量的类型为&#34;对象&#34;,=
运算符正在检查引用平等。 abc引用的对象可能是一个字符串,但由于该变量只是作为Object键入,因此您将获得引用比较。由于这两个对象不引用相同的内存块,因此比较返回False
。将您的abc
声明更改为:
Dim abc As String = "<LI ... "
要寻找的其他一些事情:
答案 1 :(得分:1)
测试两个字符串的Len()
。如果它们不同,那就有一些空白问题。
否则(或者无论如何要找出差异开始的地方)逐个字符地检查,直到找到差异为止。
答案 2 :(得分:1)
尝试规范化字符串。它们可能看起来相同但具有不同的Unicode表示
If WebBrowserEx1.Document.All.Item(t).OuterHtml.Normalize() = abc.Normalize() Then
...
End If
(并将abc
键入为String
,正如其他人已经指出的那样。似乎VB类型推断不如C#类型推断那么好。)
答案 3 :(得分:-1)
尝试将abc
视为String
。
dim abc as string
或......
OuterHTML = cstr(abc)
我想问题在于将Object
与String
进行比较。