51Testing软件测试论坛

标题: 关于QTP代码中if...else用法 [打印本页]

作者: 卓振    时间: 2009-5-18 16:11
标题: 关于QTP代码中if...else用法
在help中看了关于if...else的用户,但是还是不清楚应该怎么样写。
在下面这行代码中
“Window("SuperClient").Dialog("增加设备").WinComboBox("设备类型:").Select DataTable("equip", dtLocalSheet)”
参数equip=a时,执行条件1;当equip=b时,执行条件2
条件1:Window("SuperClient").Window("equip_name2").WinObject("AfxFrameOrView42").DblClick 97,45
条件2:Window("SuperClient").Window("lmfe1").WinObject("AfxFrameOrView42").DblClick 92,36
wait(1)
请问高手,怎么样能完成呢?
在这先谢谢高手。
作者: ls_721521    时间: 2009-5-18 16:27
...
作者: ls_721521    时间: 2009-5-18 16:30
“Window("SuperClient").Dialog("增加设备").WinComboBox("设备类型:").Select DataTable("equip", dtLocalSheet)”
if equip=a then
        Window("SuperClient").Window("equip_name2").WinObject("AfxFrameOrView42").DblClick 97,45
  elseif equip=b then
        Window("SuperClient").Window("lmfe1").WinObject("AfxFrameOrView42").DblClick 92,36

  else
    ''''
end if
是这个意思吗?
作者: 卓振    时间: 2009-5-18 16:36
标题: 回复 3# 的帖子
是这个意思,但是这样写,应该不对。
因为equip没有参数化。
作者: ls_721521    时间: 2009-5-18 16:37
if前加一句
equip=DataTable("equip", dtLocalSheet)
作者: 卓振    时间: 2009-5-18 16:43
标题: 回复 5# 的帖子
那不用GetROProperty("value") 取值吗?
作者: ls_721521    时间: 2009-5-18 16:51
你想取啥值呀?
equip还是后面的a,b
equip是你excel里的值。
你也没说明我也不知道这些值都是干啥的。
作者: 卓振    时间: 2009-5-18 17:11
标题: 回复 7# 的帖子
我需要添加两个设备,但是这两个设备双击打开的位置是不相同的,所以我要用if...else语句。
全部代码如下:
Window("SuperClient").WinTreeView("SysTreeView32").Select "系统;区域1;lmxe", micRightBtn
Window("SuperClient").WinTreeView("SysTreeView32").WinMenu("ContextMenu").Select "增加设备(N)..."
Window("SuperClient").Dialog("增加设备").WinComboBox("设备类型:").Select DataTable("equip", dtLocalSheet)
Window("SuperClient").Dialog("增加设备").WinEdit("IP 地址:").SetSelection 0,3
Window("SuperClient").Dialog("增加设备").WinEdit("IP 地址:").Type "172"
Window("SuperClient").Dialog("增加设备").WinEdit("Edit").Type ".16."
Window("SuperClient").Dialog("增加设备").WinEdit("Edit_2").Type "95."
Window("SuperClient").Dialog("增加设备").WinEdit("Edit_3").Set DataTable("ip", dtLocalSheet)
Window("SuperClient").Dialog("增加设备").WinEdit("名称:").Set DataTable("equip_name", dtLocalSheet)
Window("SuperClient").Dialog("增加设备").WinButton("确认(O)").Click
wait(1)
Window("SuperClient").Window("lmxe").WinObject("AfxFrameOrView42").Click DataTable("p_X1", dtLocalSheet), DataTable("p_Y1", dtLocalSheet)
Window("SuperClient").Window("lmxe").WinObject("AfxFrameOrView42").type micLCtrlDwn
Window("SuperClient").Window("lmxe").WinObject("AfxFrameOrView42").DblClick DataTable("p_X2", dtLocalSheet), DataTable("p_Y2", dtLocalSheet)
Window("SuperClient").Window("equip_name1").WinObject("AfxFrameOrView42").DblClick 32,53
Window("SuperClient").Dialog("指定设备").WinButton("载入(L)").Click
Window("SuperClient").Dialog("指定设备").Dialog("打开").WinListView("查找范围(I):").Select DataTable("equip.seq", dtLocalSheet)
Window("SuperClient").Dialog("指定设备").Dialog("打开").WinButton("打开(O)").Click
wait(1)
Window("SuperClient").Dialog("指定设备").WinButton("确定(O)").Click
wait(2)
**************************************
equip=DataTable("equip", dtLocalSheet)
If equip=h9molmxe Then
Window("SuperClient").Window("equip_name2").WinObject("AfxFrameOrView42").DblClick 97,45
wait(1)
elseif equip=h9momlfe then
Window("SuperClient").Window("lmfe1").WinObject("AfxFrameOrView42").DblClick 92,36
wait(1)
End If
***********************************
'Window("SuperClient").Activate
这个**符号之间的是我自己添加的老是出问题。
作者: 卓振    时间: 2009-5-18 17:15
标题: 回复 5# 的帖子
我前面加上这句话了,但是不起作用,好像把if...else直接跳过去了。
作者: ls_721521    时间: 2009-5-18 17:28
h9molmxe和h9momlfe是你要双击的设备的名字吗?
用变量之前最好定义一下,然后写上注释,这个变量是做什么用的
作者: wangshuman    时间: 2009-5-19 10:45
按照你的写法h9molmxe和h9momlfe应该是DataTable中“equip”列中的两个参数值,当你执行代码的时候程序自动定位到DataTable中的第一行,也就是说你取的值应该是“equip”列中的第一个参数值,你可以添加 msgbox equip语句查看一下equip到底取的是什么值,这样就可以检查出你的 if 语句是否有问题了
作者: wangshuman    时间: 2009-5-19 10:48
将h9molmxe和h9momlfe用双引号引起来试一下




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