51Testing软件测试论坛

标题: QTP-两个字符串变量不相等 [打印本页]

作者: yanyouqing    时间: 2012-3-2 14:06
标题: QTP-两个字符串变量不相等
Dim promptTitle
promptTitle="""公告标题"""&"  不能为空!"
Dim nullInfo
If Browser("呼叫中心").Dialog("Windows Internet Explorer").Static("'公告标题' 不能为空!").Exist Then
nullInfo=Browser("呼叫中心").Dialog("Windows Internet Explorer").Static("'公告标题' 不能为空!").GetROProperty("text")
Reporter.ReportEvent micDone,"","promptTitle="&promptTitle&",nullInfo="&nullInfo
  If nullInfo=promptTitle Then
msgbox "Pass"
Else
msgbox "Fail"
  End If
End If
Browser("恒生电子-呼叫中心").Dialog("Windows Internet Explorer").WinButton("确定").Click

问题:为什么nullInfo=promptTitle 一直不相等?
注:
变量promptTitle="""公告标题"""&"  不能为空!"
变量nullInfo=Browser("呼叫中心").Dialog("Windows Internet Explorer").Static("'公告标题' 不能为空!").GetROProperty("text")

我在调试的时候把两个变量的值写到报告里,结果两个变量的值都一样,为什么就不相等呢?
promptTitle="公告标题" 不能为空!,nullInfo="公告标题" 不能为空!
作者: Shawn_xiao    时间: 2012-3-2 14:06
debug view 里 用Watch 调试 这个 很容易的
作者: yanyouqing    时间: 2012-3-2 14:45
这么久都没人来观看,自己顶一下吧。
作者: testlab    时间: 2012-3-2 16:31
你用len()获取一下2个变量的长度看看
作者: lotus    时间: 2012-3-2 17:38
因为没有你的环境,也没有你的报告的图片,只能猜了
1.空格引起的
trim(promptTitle)
trim(nullInfo)

2.可能是感叹号或中间的空格的半角与全角引起的

仔细检查下
作者: Lucky_time    时间: 2012-3-2 22:24
我说几点看看对你有帮助不:
1、在你的预期值和实际值中,请注意你公告标题的引号和叹号,中英文是否一致。
2、建议你在脚本中直接msgbox这两个值出来看看,到底一样不,反正,呵呵,据我看你的代码,你的promptTitle和nullInfo这辈子是不可能一样的。
....如果还没有解决QQ联系我,我的QQ544588827
作者: Lucky_time    时间: 2012-3-2 22:25
我说几点看看对你有帮助不:
1、在你的预期值和实际值中,请注意你公告标题的引号和叹号,中英文是否一致。
2、建议你在脚本中直接msgbox这两个值出来看看,到底一样不,反正,呵呵,据我看你的代码,你的promptTitle和nullInfo这辈子是不可能一样的。
....如果还没有解决QQ联系我,我的QQ544588827
作者: Lucky_time    时间: 2012-3-2 22:25
我说几点看看对你有帮助不:
1、在你的预期值和实际值中,请注意你公告标题的引号和叹号,中英文是否一致。
2、建议你在脚本中直接msgbox这两个值出来看看,到底一样不,反正,呵呵,据我看你的代码,你的promptTitle和nullInfo这辈子是不可能一样的。
....如果还没有解决QQ联系我,我的QQ544588827
作者: Lucky_time    时间: 2012-3-2 22:25
我说几点看看对你有帮助不:
1、在你的预期值和实际值中,请注意你公告标题的引号和叹号,中英文是否一致。
2、建议你在脚本中直接msgbox这两个值出来看看,到底一样不,反正,呵呵,据我看你的代码,你的promptTitle和nullInfo这辈子是不可能一样的。
....如果还没有解决QQ联系我,我的QQ544588827
作者: pl80601983    时间: 2012-3-4 16:59
第一、可以断点调试脚本,看看两个变量的值是否一致。
第二、文字看来一样,但估计是中间有空格的问题,可以考虑用len()计算字符串长度。
作者: scorix    时间: 2012-3-5 00:42
变量nullInfo=Browser("呼叫中心").Dialog("Windows Internet Explorer").Static("'公告标题' 不能为空!").GetROProperty("text")

nullInfo取出来到底是单引号还是双引号?
作者: kuangsha    时间: 2012-3-5 11:48
nullInfo取出的值是单引号的,修改定义值:promptTitle="""公告标题"""&"  不能为空!"
改为promptTitle=""'公告标题'""&"  不能为空!"
作者: kuangsha    时间: 2012-3-5 11:50
再精简点,promptTitle="'公告标题'"&"  不能为空!"
作者: yanyouqing    时间: 2012-3-6 10:09
回复 5# Shawn_xiao


   刚学QTP,之前都没用过watch,这个确实挺实用的。
作者: yanyouqing    时间: 2012-3-6 10:11
回复 13# kuangsha


后来用watch跟踪发现少了空格,把promptTitle换成promptTitle="""公告标题"""&"   不能为空!"后就可以了。
作者: yanyouqing    时间: 2012-3-6 10:12
变量nullInfo=Browser("呼叫中心").Dialog("Windows Internet Explorer").Static("'公告标题' 不能为空!") ...
scorix 发表于 2012-3-5 00:42



    nullInfo取出来是双引号。
作者: icegirl1202    时间: 2012-3-6 20:16
字符串前后有没有去空格?建议使用Tirm和Cstr两个函数,把两个字符串弄干净,再不行用Chr(34)替代“试试
作者: 45度向下倾斜    时间: 2012-7-19 16:55
看来还是空格是罪魁祸首。。。。以后偶也得多注意了。学习了。多谢楼上各位。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2