51Testing软件测试论坛

标题: 急!一个查询功能,if语句两边值相同,为什么不执行then反而执行else? [打印本页]

作者: o0o0123    时间: 2013-2-22 14:14
标题: 急!一个查询功能,if语句两边值相同,为什么不执行then反而执行else?
急死了,求大神们帮小弟看看,感激不尽!!!!!!!!                 
以下是我写的简单脚本,按酒店名称查询,然后比较查询结果中展示的酒店是否与输入的酒店相同         
Dim i
Browser("XXXXXX").Page("XXXXXX").Frame("menuFrame").Link("酒店库存情况查询").Click
'按酒店名称查询
For i=1 to DataTable.LocalSheet.GetRowCount
hotelname=datatable.LocalSheet.GetParameter("酒店名称").ValueByRow(i)
Browser("XXXXXX").Page("XXXXXX").Frame("Frame").WebEdit("按名称查询").Set  hotelname
Reporter.ReportNote("当前输入的酒店名称是:"&hotelname)
Browser("XXXXXX").Page("XXXXXX").Frame("Frame").WebButton("点击查询").Click
checkname=Browser("XXXXXX").Page("XXXXXX").Frame("Frame").WebElement("列表中的酒店名称").GetROProperty("innertext")
Reporter.ReportNote("列表中的酒店名称是:"&checkname)
if (hotelname=checkname) Then
              Reporter.ReportNote "查询结果:pass"
         else
          Reporter.ReportNote "查询结果:failed"
End If
Browser("XXXXXX").Page("XXXXXX").Frame("Frame").WebEdit("按名称查询").Set ""
Browser("XXXXXX").Page("XXXXXX").Frame("Frame").WebButton("点击查询").Click
Next

运行完后的报告中,Notes是这样的:

当前输入的酒店名称是:深圳明天西部酒店
列表中的酒店名称是:深圳明天西部酒店
查询结果:failed
当前输入的酒店名称是:岷山金圣大酒店
列表中的酒店名称是:岷山金圣大酒店
查询结果:failed

为什么if语句里两边值相同,但是执行“查询结果:failed”?
作者: o0o0123    时间: 2013-2-22 14:24
在线等! 给小弟一点意见,在此谢过了
作者: yubing4828    时间: 2013-2-22 15:06
判断语句是不是要双等号的...
作者: yubing4828    时间: 2013-2-22 15:12
搞混了,VB中是单等号....
把hotelname和checkname也加到dim里,定义下试试呢
作者: o0o0123    时间: 2013-2-22 15:18
回复 4# yubing4828

单等号的,把hotelname和checkname加到dim里也不行,还是执行else
作者: o0o0123    时间: 2013-2-22 15:33
解决了!看来是有空格,我改成if (Trim(hotelname)=Trim(checkname)) Then.....
就可以了。
不过也谢谢yubing4828的热情回复
作者: yubing4828    时间: 2013-2-22 16:08
呵呵,没帮上什么忙...
一时没想起trim函数..
作者: 正在更新    时间: 2013-2-23 13:07
1个就是 LZ自己发现的 空格问题
还有就是 数据类型问题 VBS是弱类型的 如果 你预期 比较的是INT型的 就要用cint 或 clng 对两边数据进行类型转换 否则也可能出现你所描述的问题




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