51Testing软件测试论坛

标题: QTP进行布尔比较时的怪象! [打印本页]

作者: dabeixiong    时间: 2011-4-15 10:37
标题: QTP进行布尔比较时的怪象!
大家应该都知道true和true比较应该是true,如下

if true = true then
        msgbox "这样比较在qtp里没问题!"
end if

但是我突然发现,如果用下面这种方法会出现怪异的现象,有兴趣的童鞋可以试试。
iflag = Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Exist(2)
msgbox iflag'这里对象存在,iflag为true
msgbox vartype(iflag)'类型为11,即布尔型

If iflag = True Then
        msgbox "竟然不为True"
End If


If iflag = "True" Then
        msgbox "qtp竟然认为是字符串!"
End If

不知道谁遇到过类似的问题...难道是QTP的bug?
作者: shingo0109    时间: 2011-4-15 11:10
我也试了一下,貌似是这样的,以下3个情况都会调用msgbox
a = True

If a Then
   msgbox "11"
End If
If a=True Then
   msgbox "22"
End If
If a="True" Then
   msgbox "33"
End If
作者: dabeixiong    时间: 2011-4-15 11:51
但是!你别a=true,你用a=xxx.Exist()试试就知道了...

为了迁就下这种情况...最好就只用下面这种方式,不要做显示判断
If a Then
   msgbox "11"
End If
作者: sjrsjr12    时间: 2011-4-16 17:10
a= browser("xxx").Page("xxxx").Frame("Frame").Exist

If a=True Then
        msgbox a
End If

运行结果 :  msgbox  显示 True
可以啊  我用的是QTP10

你是什么版本
作者: kavensyw    时间: 2011-4-17 19:58
因为严格来说,vbs只有一种数据类型,就是Variant类型,
其他都是Variant的子类型。

见以下示例:
If 1.23 ="1.23" Then
        MsgBox "相等"
End If
作者: weidu007    时间: 2011-8-16 14:19
回复 3# dabeixiong


  我也遇到这个问题,用你这种方法就解决了,不知道为什么可以这样呢。




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