51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] RegisterUserFunc的疑问

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-12-25 16:37:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天用了一下RegisterUserFunc这个函数 发现他只可以和对象库一起用,但用描述性编程,就会报无法找到对象的错误.请高手指点,我该如何才能和描述性编程一起使用并覆盖QTP本身的函数?还有一个问题,如果我想传入多参又该怎么办?比如默认QTP的WEBEDIT的SET方法只有一个参数 但我想有多参传进去,该如何实现?非常感谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-12-25 17:15:43 | 只看该作者
看来还是我刚才对象本身的问题,RegisterUserFunc与描述性编程没有关系.所以RegisterUserFunc在描述性编程中也是可以用的
而对于多参,还是没有找到解决方法
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-12-25 17:23:21 | 只看该作者
不会啊,下面是我在本地跑的描述性代码:
Dim pageobj
Set pageobj = Browser("CreationTime:=2").Page("index:=").WebEdit("name:=TextboxUserCode")
RegisterUserFunc "WebEdit", "Set", "mySet"
pageobj.Set "jinsentest1"
UnRegisterUserFunc "WebEdit", "Set"

Function mySet(obj,val1)
   Dim tempValue

   tempValue = obj.GetROProperty("value")

   If tempValue = val1 Then
                Reporter.ReportEvent micDone, "test check point", "val1 = " & val1
   Else
                Reporter.ReportEvent micDone, "test check point", "tempValue = " & tempValue
   End If

   tempValue = "val1 = " & val1
   obj.Set(val1)
End Function

以上可以通过,但是要传多个参数没有想到办法。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-12-25 18:33:36 | 只看该作者
其实多参有一个折中的办法 就是将多参的值用符号隔开 然后到函数里再拆开 虽然这样也可以实现多参的传入 但这样不直观 只是下策
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2007-12-27 23:02:25 | 只看该作者
    参数用数组是否可行?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2007-12-28 09:39:06 | 只看该作者

    回复 5# 的帖子

    用数组,应该可以实现,呵呵,好像是中策啊!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-12-28 14:53:15 | 只看该作者
    看来很多人,对设置可选参数感兴趣哦
    我也很感兴趣,呵呵
    不过没什么好的建议
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-12-29 12:17:19 | 只看该作者
    原帖由 lantianwei 于 2007-12-25 16:37 发表
    今天用了一下RegisterUserFunc这个函数 发现他只可以和对象库一起用,但用描述性编程,就会报无法找到对象的错误.请高手指点,我该如何才能和描述性编程一起使用并覆盖QTP本身的函数?还有一个问题,如果我想传入多参又该 ...


    WebEdit设置多个参数是没有意义的,只有一个参数,一个编辑框不可能有多个参数,即便中间有符号,也是一个参数。
    多次Set一个WebEdit最终的结果是只设置了最后一次的值。
    多个WebEdit的设置只要逐条写出来就好了,重复的用循环。数组是一个设置可选参数的好方法(学习了),但是用在这里不合适。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2007-12-29 12:39:56 | 只看该作者
    原帖由 jackymail 于 2007-12-29 12:17 发表


    WebEdit设置多个参数是没有意义的,只有一个参数,一个编辑框不可能有多个参数,即便中间有符号,也是一个参数。
    多次Set一个WebEdit最终的结果是只设置了最后一次的值。
    多个WebEdit的设置只要逐条写出来就好 ...

    看来jackymail是误解了我的意思,我想实现的是自己定义底层函数,它需要多个输入参数,然后用来覆盖QTP自身的方法,从而从底层来屏蔽一些低级错误.所以多参还是有意义的,只是VBS不支持重载,没办法实现,现在只能用walker1020建议的数组来实现.但有一个缺点是不直观.但现在也只能将就着用了.呵呵
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2009-3-27 11:26:40 | 只看该作者
    同意楼上
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2010-8-17 17:03:07 | 只看该作者

    RegisterUserFunc的疑问

    对于从ChildObjects方法中获取到的子对象,使用重载方法就会报错。各位遇到过这种情况吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2010-8-18 17:19:42 | 只看该作者

    回复 1# 的帖子

    好老的帖子呀

    [ 本帖最后由 xhhuang1618 于 2010-8-18 17:30 编辑 ]
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-26 10:03 , Processed in 0.071047 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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