51Testing软件测试论坛
标题:
关于QTP的几个问题
[打印本页]
作者:
majesty
时间:
2007-8-13 21:18
标题:
关于QTP的几个问题
最近在看QTP,小弟遇到了2个小问题,还请各位高手不吝指教
1) QTP函数的默认传参方式是什么?是传值byVal,还是传引用byRef?
2) QTP对VISTA的支持怎么样?为何我在VISTA下对自带的FLIGHT程序进行录制时,登录窗口中的PASSWORD EDITBOX总是录不下来。
(其他对象似乎没什么问题,网页中的密码输入框也没有问题)
作者:
hsjzfling
时间:
2007-8-13 21:34
答:
1) QTP的默认参数传递是ByRef
2) QTP9.2是支持Vista的,以前的版本应该不能很好的支持
作者:
zhumingwei
时间:
2007-8-13 22:03
楼上的精练
作者:
zhumingwei
时间:
2007-8-13 22:04
能否详细的讲一下byVal和byRef的区别?
作者:
zhumingwei
时间:
2007-8-13 22:07
不说原理,区别就是变量如果以ByVal传递给过程,过程里有代码对这个变量做了更改,在过程结束返回后这个变量还是调用过程前的值,不会变化,变量如果以ByRef传递给过程,过程里有代码对这个变量做了更改,在过程结束返回后这个变量的值就是过程里改成的那个值
作者:
zhumingwei
时间:
2007-8-13 22:09
转贴
Byval与Byref的区别
实例:
sub Add1(ByVal no as int32)
no=no+100
end sub
sub Add2(ByRef no as int32)
no=no+100
end sub
private sub button1_click(sender as object,e as eventargs)handles button1.click
dim a as int32
a=100
Add1(a)
msgbox ("a的值为:" & a) '显示:a的值为100
Add2(a)
msgbox ("a的值为:" & a) '显示:a的值为200,因为Add2中的参数no为ByRef,即
'按地址传递,因此在Add2中对no进行修改后,将会导致
'源参数a的值也被修改。
End Sub
ByVal是传递值 源数据不会被修改
你可以把这个值当作自己的局部变量来使用
ByRef是传递地址 , 源数据可能被修改
你对这个变量的操作将对你传入的那个变量产生影响,就像指针的感觉
作者:
hsjzfling
时间:
2007-8-13 22:10
'ByVal是值传递,ByRef是引用传递,效果类似于C/C++中的参数传递
'你把Add过程里的ByVal改成ByRef,再运行看看效果就知道了:)
Option Explicit
Dim a,b
a = 3
b = 4
Add a,b
MsgBox a
Sub Add(ByVal x,ByVal y)
x = x + y
End Sub
作者:
majesty
时间:
2007-8-13 22:29
原帖由
hsjzfling
于 2007-8-13 21:34 发表
答:
1) QTP的默认参数传递是ByRef
2) QTP9.2是支持Vista的,以前的版本应该不能很好的支持
言简意赅,谢谢了
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2