51Testing软件测试论坛

标题: QTP--方法的重载 [打印本页]

作者: fei.ge    时间: 2009-5-19 10:56
标题: QTP--方法的重载
下面是我的代码:

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

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

Function  Myclose(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
“重写不成功” 是什么概念?报告了什么错误?还有,close(x) 这样写对吗? 有意义吗?
作者: fei.ge    时间: 2009-5-19 14:01
不好意思,应该是方法的重载...?

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

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

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

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

Function  Myclose(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
谢谢walker1020的关注。
作者: fei.ge    时间: 2009-5-19 14:12
这个其实也是方法重载的一个例子;
下面我做了个详细的,把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

Function  Myclose(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
高手啊,还要向前辈多多学习啊。。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2