在VB脚本中有两个字符串“test_name”。它们必须相同,并且在调试查看器中看起来相同,但StrCompare(string1,string2)返回1.
历史。 这是QTP中的一项测试。第一个字符串从Excel中读取。第二个是来自Windows应用程序。 QTP从Excel读取值,将其输入到窗体,然后从另一个位置读取相同的值。如果这两个值相同,则测试通过。
如何找到这两个字符串的差异,以便我可以更正测试?
答案 0 :(得分:4)
我建议您使用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或编码问题。
答案 1 :(得分:3)
最有可能在末尾有空格(或者其他类似空格的内容)。尝试像这样打印:
Debug.Print "*" & string1 & "*"
Debug.Print "*" & string2 & "*"
看看你得到了什么。
答案 2 :(得分:2)
您是否尝试在vbTextCompare
中使用参数StrComnpare
?
这将对两个字符串进行不区分大小写的比较。
我也会建议上面说的2。
所以它会是:
StrCompare(String1, String2, vbTextCompare)
亲切的问候,