liweilovend 发表于 2009-9-3 17:16:46

怎样参数化飞机订票的点选按钮

在QTP的C/S订票系统测试中,我想对选择是头等舱/经济舱/商务舱,这个单选按钮进行参数化。我的想法是产生一个随机数,然后在Set时,用一个随机变量来代替。
Window("Flight Reservation").WinRadioButton("Business").Set
我的随机变量产生方法如下:
Dim x1,x2
Randomize
x1=RandomNumber(1,3)
      If      x1="1"thenx2="Business"
      else if x1="2"thenx2="Economy"
      else    x1="3"thenx2="First "
End if
Window("Flight Reservation").WinRadioButton(x2).Set
结果在保存时,一直提示我语法错误。我研究了一下,始终不知道问题出在哪里?请高人指点。出错信息见截图。

liweilovend 发表于 2009-9-3 18:17:11

自己先找到一种解决的办法,见论坛中的这个帖子。不过我的方法理论上应该是可以的啊!还得请高手指点一下!:)

liweilovend 发表于 2009-9-3 18:17:19

http://bbs.51testing.com/viewthread.php?tid=138127&highlight=radio

dreamsea123 发表于 2009-9-3 19:13:21

参数化需要用描述性变成,比如
WinRadioButton("Business").Set
应该改为WinRadioButton(某属性:=变量).set
这样才是有效的,否则按照楼主的写法是没有办法找到对象的。

joseph_wh 发表于 2009-9-3 23:39:02

原帖由 liweilovend 于 2009-9-3 17:16 发表 http://bbs.51testing.com/images/common/back.gif
在QTP的C/S订票系统测试中,我想对选择是头等舱/经济舱/商务舱,这个单选按钮进行参数化。我的想法是产生一个随机数,然后在Set时,用一个随机变量来代替。
Window("Flight Reservation").WinRadioButton("Business").Set
我的随机变量产生方法如下:
Dim x1,x2
Randomize
x1=RandomNumber(1,3)
      If      x1="1"thenx2="Business"
      else if x1="2"thenx2="Economy"
      else    x1="3"thenx2="First "
End if
Window("Flight Reservation").WinRadioButton(x2).Set
结果在保存时,一直提示我语法错误。我研究了一下,始终不知道问题出在哪里? ...

你有2个 If,只有一个 End If

sy070904 发表于 2009-9-4 00:29:45

是因为缺少end if 的原因吗?说实话,接触qtp快两个月了,我还不知道if是怎么用的.

liweilovend 发表于 2009-9-4 10:21:32

首先谢谢dreamsea123和josehp_wh的回答!4楼的说法我明白,可是问题是出现语法错误的地方不是那句话,而是几个if else的语句!我按照5楼说的方法,我加了endif,还是报错!不知道原因!另外附上最终的解决办法!没有用if else语句来实现,使用了select case的方法实现了随机选取的目的。代码如下:
Dim i,b
i=RandomNumber(1,3)
    Select Case i
      Case 1 b="First"
      Case 2 b="Business"
      Case 3 b="Economy"
    End Select
Window("Flight Reservation").WinRadioButton("First").SetTOProperty"text",b
Window("Flight Reservation").WinRadioButton("First").Set
同时希望再有高人指点一下我之前的方法是什么地方出错了?

liuxl 发表于 2009-9-4 15:24:01

最后一个else也应该加if
      If x1="1"then
               x2="Business"
      elseif x1="2"then
               x2="Economy"
      elseif    x1="3"then
               x2="First "
         End if

liweilovend 发表于 2009-9-9 18:09:14

谢谢,liuxl,用了您的方法,也还是有语法错误!不过还要谢谢你!

风雪夜归人 发表于 2009-9-9 18:27:27

If x1="1"then
               x2="Business"
      elseif x1="2"then
               x2="Economy"
      else
               x2="First "
         End if


这样试试,不行的话,就把End If给删掉,再写个end if,我也常遇到这样的问题,就是删掉end if ,再加上就好了,实在不行,重启QTP试试

风雪夜归人 发表于 2009-9-9 18:28:33

另外,写代码的时侯,要分清层次,别搅在一行

liweilovend 发表于 2009-9-10 10:23:12

回复 10# 的帖子

非常感谢风雪夜归人.先谢谢你,我在你的指导下,终于发现了问题的所在!以下附上最终的解决办法:
Dim x1,x2
Randomize
x1=RandomNumber(1,3)
    If             x1="1"   then
                    x2="Business"
    else if    x1="2"   then
                    x2="Economy"
    else            x2="First "
   end if
   end if
Window("Flight Reservation").WinRadioButton(x2).Set
另外谢谢以上所有的热心的朋友们!此问题已解决。:) :) :) :) :) :) :handshake :handshake :handshake
页: [1]
查看完整版本: 怎样参数化飞机订票的点选按钮