心清清 发表于 2009-4-14 20:17:21

QTP脚本中如何将参数传入function

最近用了几天QTP,发现有好几个问题啊,希望各位高手来帮忙解答下哦

1、写了一个function,存为vbs文件,在脚本中调用该function时无法将脚本中的变量的值传入该function,msgbox传入的值为空。不知道哪里出问题了,为什么传不进去参数呢?具体代码如下:
   ..........调用的代码......
   a=1234
   call function name(a)

   ......Function代码.......
    function name(b)
    dim state,page
   state=0
   page=1
   browser("ie").page("page").link("value:="&b).click
   end function
2、关于用户体验性的问题,复制粘贴runaction的代码后,为什么仍然要insert action才可以?否则会报错找不到该action,因为有很多重复调用action,每次都insert确实比较麻烦,不知道有没有比较方便的办法哦。

3、运行时报错提示框只有 OK 和help按钮,为什么没有skip按钮?这样的话手工操作一下可以让脚本继续跑下去,而不用每次出一个问题就要重新开始跑脚本,跑一遍要花好多时间呢。

[ 本帖最后由 心清清 于 2009-4-14 20:50 编辑 ]

Jay-Yang84 发表于 2009-4-14 23:08:41

1. 首先你得确定你加载了这个vbs,方法可以通过Function->Setting->Libary加载, 或者用语句ExecuteFile,我想这个你肯定加载了. 其次我不知道是不是你用了call function name(a),我没有这样用过,我只用过 call name(a).
2. 每次都insert确实比较麻烦,我也是新手, 也不知道有没有比较方便的办法...
3. 运行时报错提示框我这边每次都有Skip和Debug,呵呵,不知道是不是哪里的设置问题,其他我想你可以在语句中加Run Error Resume Next,我想这和Skip的作用是一样的吧...我这边虽然可以出错了弹出Skip和Debug,但是貌似QTP不支持出错了后点Debug后更新一些错误的字段值可以使程序继续run下去,或者是我不知道怎么用,因为我看到Debug view有Command栏. 还有就是貌似不支持断点往回拖,这样导致我不小心run过了就不可以看第二遍了. 其实我觉得Skip只能忽略掉一些语法的小问题,个人觉得用处不大,如果一个语句出错skip了就会一错错到底...

我也是新手,刚接触QTP,希望高手赶紧出来, 我也想知道....

风过无息 发表于 2009-4-15 10:27:40

1、写了一个function,存为vbs文件,在脚本中调用该function时无法将脚本中的变量的值传入该function,msgbox传入的值为空。不知道哪里出问题了,为什么传不进去参数呢?具体代码如下:
   ..........调用的代码......
   a=1234
   call name(a)

   ......Function代码.......
    function name(b)
msgbox b
   end function

>>楼主看下上面的脚本

2、关于用户体验性的问题,复制粘贴runaction的代码后,为什么仍然要insert action才可以?否则会报错找不到该action,因为有很多重复调用action,每次都insert确实比较麻烦,不知道有没有比较方便的办法哦。

>>把脚本设置可调用的,
Action Properties>>选择Reusable action
以后就可以直接调用,使用CALL

3、运行时报错提示框只有 OK 和help按钮,为什么没有skip按钮?这样的话手工操作一下可以让脚本继续跑下去,而不用每次出一个问题就要重新开始跑脚本,跑一遍要花好多时间呢。
>>使用On Error Resume Next,
跳过错误集训运行

On Error GoTo 0
恢复
具体请参考帮助

[ 本帖最后由 风过无息 于 2009-4-15 10:29 编辑 ]

咚咚宝031102 发表于 2009-4-15 10:49:58

dddddddddddddddd

心清清 发表于 2009-4-29 10:50:52

谢谢各位的回复。
第一个问题已经解决,只是因为传入的参数少了一个空格,在function里就无法找到对应的对象,我就以为没传进去呢,绕了个好大的湾啊,不好意思
页: [1]
查看完整版本: QTP脚本中如何将参数传入function