yanyouqing 发表于 2012-3-2 14:06:43

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:44

debug view 里 用Watch 调试 这个 很容易的

yanyouqing 发表于 2012-3-2 14:45:46

这么久都没人来观看,自己顶一下吧。

testlab 发表于 2012-3-2 16:31:50

你用len()获取一下2个变量的长度看看

lotus 发表于 2012-3-2 17:38:07

因为没有你的环境,也没有你的报告的图片,只能猜了
1.空格引起的
trim(promptTitle)
trim(nullInfo)

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

仔细检查下

Lucky_time 发表于 2012-3-2 22:24:50

我说几点看看对你有帮助不:
1、在你的预期值和实际值中,请注意你公告标题的引号和叹号,中英文是否一致。
2、建议你在脚本中直接msgbox这两个值出来看看,到底一样不,反正,呵呵,据我看你的代码,你的promptTitle和nullInfo这辈子是不可能一样的。
....如果还没有解决QQ联系我,我的QQ544588827

Lucky_time 发表于 2012-3-2 22:25:05

我说几点看看对你有帮助不:
1、在你的预期值和实际值中,请注意你公告标题的引号和叹号,中英文是否一致。
2、建议你在脚本中直接msgbox这两个值出来看看,到底一样不,反正,呵呵,据我看你的代码,你的promptTitle和nullInfo这辈子是不可能一样的。
....如果还没有解决QQ联系我,我的QQ544588827

Lucky_time 发表于 2012-3-2 22:25:13

我说几点看看对你有帮助不:
1、在你的预期值和实际值中,请注意你公告标题的引号和叹号,中英文是否一致。
2、建议你在脚本中直接msgbox这两个值出来看看,到底一样不,反正,呵呵,据我看你的代码,你的promptTitle和nullInfo这辈子是不可能一样的。
....如果还没有解决QQ联系我,我的QQ544588827

Lucky_time 发表于 2012-3-2 22:25:20

我说几点看看对你有帮助不:
1、在你的预期值和实际值中,请注意你公告标题的引号和叹号,中英文是否一致。
2、建议你在脚本中直接msgbox这两个值出来看看,到底一样不,反正,呵呵,据我看你的代码,你的promptTitle和nullInfo这辈子是不可能一样的。
....如果还没有解决QQ联系我,我的QQ544588827

pl80601983 发表于 2012-3-4 16:59:24

第一、可以断点调试脚本,看看两个变量的值是否一致。
第二、文字看来一样,但估计是中间有空格的问题,可以考虑用len()计算字符串长度。

scorix 发表于 2012-3-5 00:42:15

变量nullInfo=Browser("呼叫中心").Dialog("Windows Internet Explorer").Static("'公告标题' 不能为空!").GetROProperty("text")

nullInfo取出来到底是单引号还是双引号?

kuangsha 发表于 2012-3-5 11:48:57

nullInfo取出的值是单引号的,修改定义值:promptTitle="""公告标题"""&"不能为空!"
改为promptTitle=""'公告标题'""&"不能为空!"

kuangsha 发表于 2012-3-5 11:50:31

再精简点,promptTitle="'公告标题'"&"不能为空!"

yanyouqing 发表于 2012-3-6 10:09:04

回复 5# Shawn_xiao


   刚学QTP,之前都没用过watch,这个确实挺实用的。

yanyouqing 发表于 2012-3-6 10:11:43

回复 13# kuangsha


后来用watch跟踪发现少了空格,把promptTitle换成promptTitle="""公告标题"""&"   不能为空!"后就可以了。

yanyouqing 发表于 2012-3-6 10:12:55

变量nullInfo=Browser("呼叫中心").Dialog("Windows Internet Explorer").Static("'公告标题' 不能为空!") ...
scorix 发表于 2012-3-5 00:42 http://bbs.51testing.com/images/common/back.gif


    nullInfo取出来是双引号。

icegirl1202 发表于 2012-3-6 20:16:47

字符串前后有没有去空格?建议使用Tirm和Cstr两个函数,把两个字符串弄干净,再不行用Chr(34)替代“试试

45度向下倾斜 发表于 2012-7-19 16:55:41

看来还是空格是罪魁祸首。。。。以后偶也得多注意了。学习了。多谢楼上各位。
页: [1]
查看完整版本: QTP-两个字符串变量不相等