在 VB 脚本中比较了两个字符串“test_name”。它们必须相同,并且在调试查看器中看起来相同,但 StrCompare(string1, string2) 返回 1。
历史。 这是 QTP 中的测试。第一个字符串是从 Excel 中读取的。第二个来自 Windows 应用程序。QTP 从 Excel 中读取一个值,将其输入到 Windows 窗体中,然后从另一个地方读取相同的值。如果这两个值相同,则测试通过。
如何找到这两个字符串的差异以便我可以更正测试?
我建议使用For
循环、Mid
和Asc
, 来一一比较实际字符。类似(未尝试的代码):
' Presume input strings named s1 and s2
' Assume Len(s1) = Len(s2)
Dim i
For i = 1 to Len(s1)
If Asc(Mid(s1, i, 1)) <> Asc(Mid(s2, i, 1)) Then
Msgbox "Strings differ at character " & i
End If
Next 'i
如果他们在这个测试中是平等的,到StrComp
那时是不平等的......我真的不知道。也许尝试同样的事情,LenB
看看AscB
它是否是Unicode或编码问题。
很可能你在末尾有尾随空格(或其他像空格一样打印的东西)。尝试像这样打印它们:
Debug.Print "*" & string1 & "*"
Debug.Print "*" & string2 & "*"
看看你得到了什么。
您是否尝试vbTextCompare
在您的StrComnpare
? 这将对两个字符串进行不区分大小写的比较。
我也会推荐上面2所说的。
所以它会是:
StrCompare(String1, String2, vbTextCompare)
亲切的问候,