fei.ge 发表于 2009-5-19 10:56:34

QTP--方法的重载

下面是我的代码:

==============================================================
SystemUtil.CloseProcessByName("iexplore.exe")
SystemUtil.Run "iexplore.exe","www.baidu.com",,,3

Set Bro = description.Create()
Bro("title").value = ".*"

FunctionMyclose(obj,x)
        MyClose=obj.close(x)
        msgbox"Myclose"
End Function

RegisterUserFunc "Browser","Close","Myclose"
Browser(Bro).Close
UnRegisterUserFunc "Browser","Close"
==============================================================

QTP应该支持方法的重写,但是Browser的close方法为什么不能重写?

[ 本帖最后由 fei.ge 于 2009-5-19 17:07 编辑 ]

walker1020 发表于 2009-5-19 13:16:59

“重写不成功” 是什么概念?报告了什么错误?还有,close(x) 这样写对吗? 有意义吗?

fei.ge 发表于 2009-5-19 14:01:54

不好意思,应该是方法的重载...?

我的本意是想试试QTP中的方法的重载功能,脚本的目的是:用myclose函数代替close动作。

由于只看过一点这方面的资料,所以模拟实践了一下。

经过修改,我的脚本可以运行了。
=================================================
SystemUtil.CloseProcessByName("iexplore.exe")
SystemUtil.Run "iexplore.exe","www.baidu.com",,,3

Set Bro = description.Create()
Bro("title").value = ".*"

FunctionMyclose(obj)
      MyClose=obj.close
      msgbox"Myclose"
End Function

RegisterUserFunc "Browser","Close","Myclose"
Browser(Bro).Close
UnRegisterUserFunc "Browser","Close"
=================================================

[ 本帖最后由 fei.ge 于 2009-5-19 14:23 编辑 ]

fei.ge 发表于 2009-5-19 14:02:52

谢谢walker1020的关注。

fei.ge 发表于 2009-5-19 14:12:55

这个其实也是方法重载的一个例子;
下面我做了个详细的,把set和close方法进行了重载。
============================================================================
SystemUtil.CloseProcessByName("iexplore.exe")
SystemUtil.Run "iexplore.exe","www.baidu.com",,,3

Set Bro = description.Create()
        Bro("title").value = ".*"
Set Pag = description.Create()
        pag("title").value = ".*"
Set webedit1 = description.Create()
        webedit1("name").value = ".*"
       
Function MySet(obj,x)
        MySet=obj.set(x)
        msgbox "Myset"
End Function

FunctionMyclose(obj)
      MyClose=obj.close
      msgbox"Myclose"
End Function

RegisterUserFunc "WebEdit","Set","MySet"
Browser(Bro).Page(Pag).WebEdit(WebEdit1).Set "你好"
UnRegisterUserFunc "WebEdit","Set"

RegisterUserFunc "Browser","Close","Myclose"
Browser(Bro).Close
UnRegisterUserFunc "Browser","Close"
============================================================================

[ 本帖最后由 fei.ge 于 2009-5-19 14:24 编辑 ]

aspchenping 发表于 2009-5-20 15:05:02

高手啊,还要向前辈多多学习啊。。
页: [1]
查看完整版本: QTP--方法的重载