51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2548|回复: 10
打印 上一主题 下一主题

[求助] 如何返回函数中的变量

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-4-23 16:36:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Dim str_obj
Dim str_property
Dim str_type

Function get_object(micclass,str_obj,str_type)
   Dim oDesc
   Set oDesc = Description.Create()
   oDesc(micclass).Value = str_type
   Set objTemp = str_obj.ChildObjects(oDesc)
   NumberOfList = objTemp.Count
End Function

Function get_property(str_obj,obj_property)
   str_property = str_obj.GetRoProperty(obj_property)  
End Function

Call  get_object( "micclass",Browser("**").Page("**").Frame("mainboard"),"WebEdit")


Call  get_property(objTemp,"name")
请问能否返回get_object()中的objTemp,使用在get_property中?
我在函数get_object()中写get_object = objTemp也没有效果
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2015-9-22 15:26
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]测试营长

    2#
    发表于 2009-4-23 19:10:26 | 只看该作者
    用set get_object = objTemp就可以在函数中返回get_object
    set是将引用赋值给变量

    对于
    Function get_property(str_obj,obj_property)
       str_property = str_obj.GetRoProperty(obj_property)  
    End Function
    只需要一个参数啊
    Function get_property(obj_property)
       dim str_obj
        set str_obj=get_object( "micclass",Browser("**").Page("**").Frame("mainboard"),"WebEdit")
       str_property = str_obj.GetRoProperty(obj_property)  
    End Function

    另外,调用Function 时不要用call,直接用函数名+参数即可.“使用 Call 语法调用内部函数或使用用户自定义函数,函数返回值都会被放弃”---这句话引用的帮助文档

    我没有测试,自己调试下了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2009-4-23 20:16:51 | 只看该作者
    Dim str_obj
    Dim str_property
    Dim str_type
    Dim obj_Temp

    Function get_object(micclass,str_obj,str_type)
       Dim oDesc
       Set oDesc = Description.Create()
       oDesc(micclass).Value = str_type
       Set objTemp = str_obj.ChildObjects(oDesc)
       NumberOfList = objTemp.Count
       get_object = str_obj.ChildObjects(oDesc)
    End Function

    obj_Temp = get_object(micclass,str_obj,str_type)

    Function get_property(obj_Temp,obj_property)
       str_property = str_obj.GetRoProperty(obj_property)  
    End Function

    Call  get_object( "micclass",Browser("**").Page("**").Frame("mainboard"),"WebEdit")
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2009-4-23 22:51:38 | 只看该作者
    真的不要用Call,直接函数名就可以了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2009-4-24 10:49:06 | 只看该作者

    按照virgolong的方法

    Dim str_obj
    Dim str_property
    Dim str_type


    Public Function get_object(micclass,str_obj,str_type)
       Dim oDesc
       Set oDesc = Description.Create()
       oDesc(micclass).Value = str_type
       Set objTemp = str_obj.ChildObjects(oDesc)
    '   NumberOfList = objTemp.Count
       Set get_object = objTemp
    End Function

    Function get_property(obj_property)
       Dim str_obj
       Set str_obj=get_object( "micclass",Browser("**").Page("**").Frame("mainboard"),"WebEdit")
       str_property = str_obj.GetRoProperty(obj_property)  
    End Function

    get_object "micclass",Browser("**").Page("**").Frame("mainboard"),"WebEdit"

    get_property "name"

    在 str_property = str_obj.GetRoProperty(obj_property)  处显示如图

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2009-4-24 10:56:31 | 只看该作者

    按照ddkfamily的方法

    Dim str_obj
    Dim str_property
    Dim str_type
    Dim obj_Temp

    Public Function get_object(micclass,str_obj,str_type)
       Dim oDesc
       Set oDesc = Description.Create()
       oDesc(micclass).Value = str_type
       Set objTemp = str_obj.ChildObjects(oDesc)
    '   NumberOfList = objTemp.Count
       get_object = objTemp
    End Function

    obj_Temp = get_object(micclass,str_obj,str_type)

    Function get_property(str_obj,obj_property)
       str_property = str_obj.GetRoProperty(obj_property)  
    End Function

    Call get_object("micclass",Browser("**").Page("**").Frame("mainboard"),"WebEdit")
    call  get_property(obj_Temp,"name")
    在 oDesc(micclass).Value = str_type处显示语法错误
    估计是obj_Temp = get_object(micclass,str_obj,str_type)这句的原因
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-9-22 15:26
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]测试营长

    7#
    发表于 2009-4-24 11:59:26 | 只看该作者
    不好意思,考虑到重用性,get_property还是应该有两个参数,第一个参数从get_object来
    Function get_object(micclass,str_obj,str_type)
       Dim oDesc
       Set oDesc = Description.Create()
       oDesc(micclass).Value = str_type
       Set get_object = str_obj.ChildObjects(oDesc)
    End Function

    Function get_property(str_obj,obj_property)
       get_property= str_obj.GetRoProperty(obj_property)  
    End Function

    调用:
    set obj_Temp =get_object("micclass",Browser("**").Page("**").Frame("mainboard"),"WebEdit")
    result=get_property(obj_Temp,"name")
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2009-4-24 15:18:06 | 只看该作者
    在get_property= str_obj.GetRoProperty(obj_property)总显示对象不支持该属性或方法
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2009-4-24 18:15:54 | 只看该作者
    个人猜测:GetRoProperty 是 QTP自己封装的函数,它要求必须是 某类Object才可以使用它。 因此建议你先使用RegisterUserFunc ,为某类对象增加一个 get_property  函数后 再重新尝试运行你的代码
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2009-4-24 18:19:25 | 只看该作者
    如 RegisterUserFunc "WebEdit","get_property","get_property"

    Function get_property(str_obj,obj_property)
       get_property = str_obj.GetRoProperty(obj_property)  
    End Function
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2009-4-25 18:22:05 | 只看该作者
    仍然出现上述错误,请问版主是这么写的吗?
    Dim str_obj
    Dim str_property
    Dim str_type

    Function get_object(micclass,str_obj,str_type)
       Dim oDesc
       Set oDesc = Description.Create()
       oDesc(micclass).Value = str_type
       Set get_object = str_obj.ChildObjects(oDesc)
    '   NumberOfList = objTemp.Count
    End Function

    Function get_property(str_obj,obj_property)

       get_property = str_obj.GetRoProperty(obj_property)  
       
    End Function

    RegisterUserFunc "WebEdit","GetRoProperty","get_property"

    Set obj_Temp = get_object( "micclass",Browser("万翔商务网").Page("万翔商务网").Frame("mainboard"),"WebEdit")
    result = get_property(obj_Temp,"name")
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 21:06 , Processed in 0.080533 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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