关于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)
请问高手,怎么样能完成呢?
在这先谢谢高手。 ... “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
是这个意思吗?
回复 3# 的帖子
是这个意思,但是这样写,应该不对。因为equip没有参数化。 if前加一句
equip=DataTable("equip", dtLocalSheet)
回复 5# 的帖子
那不用GetROProperty("value") 取值吗? 你想取啥值呀?equip还是后面的a,b
equip是你excel里的值。
你也没说明我也不知道这些值都是干啥的。
回复 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
这个**符号之间的是我自己添加的老是出问题。
回复 5# 的帖子
我前面加上这句话了,但是不起作用,好像把if...else直接跳过去了。 h9molmxe和h9momlfe是你要双击的设备的名字吗?用变量之前最好定义一下,然后写上注释,这个变量是做什么用的 按照你的写法h9molmxe和h9momlfe应该是DataTable中“equip”列中的两个参数值,当你执行代码的时候程序自动定位到DataTable中的第一行,也就是说你取的值应该是“equip”列中的第一个参数值,你可以添加 msgbox equip语句查看一下equip到底取的是什么值,这样就可以检查出你的 if 语句是否有问题了 将h9molmxe和h9momlfe用双引号引起来试一下
页:
[1]