51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5619|回复: 11
打印 上一主题 下一主题

[求助] 关于QTP代码中if...else用法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-5-18 16:11:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在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)
请问高手,怎么样能完成呢?
在这先谢谢高手。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-5-18 16:27:29 | 只看该作者
...
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-5-18 16:30:12 | 只看该作者
“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
是这个意思吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-5-18 16:36:23 | 只看该作者

回复 3# 的帖子

是这个意思,但是这样写,应该不对。
因为equip没有参数化。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-5-18 16:37:12 | 只看该作者
if前加一句
equip=DataTable("equip", dtLocalSheet)
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-5-18 16:43:19 | 只看该作者

回复 5# 的帖子

那不用GetROProperty("value") 取值吗?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-5-18 16:51:44 | 只看该作者
你想取啥值呀?
equip还是后面的a,b
equip是你excel里的值。
你也没说明我也不知道这些值都是干啥的。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2009-5-18 17:11:50 | 只看该作者

回复 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
这个**符号之间的是我自己添加的老是出问题。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2009-5-18 17:15:13 | 只看该作者

回复 5# 的帖子

我前面加上这句话了,但是不起作用,好像把if...else直接跳过去了。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-5-18 17:28:12 | 只看该作者
h9molmxe和h9momlfe是你要双击的设备的名字吗?
用变量之前最好定义一下,然后写上注释,这个变量是做什么用的
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-5-19 10:45:52 | 只看该作者
按照你的写法h9molmxe和h9momlfe应该是DataTable中“equip”列中的两个参数值,当你执行代码的时候程序自动定位到DataTable中的第一行,也就是说你取的值应该是“equip”列中的第一个参数值,你可以添加 msgbox equip语句查看一下equip到底取的是什么值,这样就可以检查出你的 if 语句是否有问题了
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-5-19 10:48:40 | 只看该作者
将h9molmxe和h9momlfe用双引号引起来试一下
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 15:36 , Processed in 0.074944 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表