o0o0123 发表于 2013-2-22 14:14:17

急!一个查询功能,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("按名称查询").Sethotelname
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:41

在线等!:'( 给小弟一点意见,在此谢过了

yubing4828 发表于 2013-2-22 15:06:31

判断语句是不是要双等号的...

yubing4828 发表于 2013-2-22 15:12:13

搞混了,VB中是单等号....
把hotelname和checkname也加到dim里,定义下试试呢

o0o0123 发表于 2013-2-22 15:18:26

回复 4# yubing4828

单等号的,把hotelname和checkname加到dim里也不行,还是执行else:'(

o0o0123 发表于 2013-2-22 15:33:36

解决了!看来是有空格,我改成if (Trim(hotelname)=Trim(checkname)) Then.....
就可以了。
不过也谢谢yubing4828的热情回复

yubing4828 发表于 2013-2-22 16:08:38

呵呵,没帮上什么忙...
一时没想起trim函数..

正在更新 发表于 2013-2-23 13:07:48

1个就是 LZ自己发现的 空格问题
还有就是 数据类型问题 VBS是弱类型的 如果 你预期 比较的是INT型的 就要用cint 或 clng 对两边数据进行类型转换 否则也可能出现你所描述的问题
页: [1]
查看完整版本: 急!一个查询功能,if语句两边值相同,为什么不执行then反而执行else?