Rss订阅IQuickTest(关于如何订阅?)51Testing软件测试网vZ,Q+ZcEC
GoogleReader订阅地址: http://feeds.feedburner.com/iquicktest
!S$Z w-CX Y0作者:zzxxbb112
时间:2009/12/09 版权所有,侵权必究。51Testing软件测试网ui0C)x
h/V}
出处:http://blog.csdn.net/zzxxbb11251Testing软件测试网u!IZcQ%NW5s
这一章的内容较为简单,对描述性编程熟悉的朋友可以直接略过,为了教程的完整性还是把这章的内容补上去,在学习本章之前,请先务必完成以下讲座的学习:51Testing软件测试网p3du;`5lz
X
【软件测试自动化-QTP系列讲座 2】 == 对象库及原理透析 ==
3{XcP |Ho*T0http://blog.csdn.net/zzxxbb112/archive/2009/08/27/4489342.aspx51Testing软件测试网_0wW?jVPN
51Testing软件测试网2F"E+bAc
- 描述性编程:我们都知道QTP对象的鉴别原理,在QTP回放时,通过脚本中对应对象库中的对象的属性与真实测试对象的属性进行对比并且能够唯一匹配之后才能够对对象进行操作。而描述性编程其实就是通过把对象库中的对象属性的描述全部通过脚本体现出来,并且可以脱离对象库进行运行脚本。
L^:At3m6N0systemutil.Run "C:/Program Files/Internet Explorer/IEXPLORE.EXE","http://www.baidu.com"51Testing软件测试网?:Y{"Z(q,g3F&k&[;g
set oBrowser=Description.Create
Set oPage=Description.Create
Set oEdit=Description.Create51Testing软件测试网Z!V%r2?
N
oBrowser("micClass").value = "Browser"
oPage("micClass").value="Page"
oEdit("name").value="wd"51Testing软件测试网:Mf!@J]}:TG r0n,~'TS
Browser(oBrowser).Page(oPage).WebEdit(oEdit).Set "zzxxbb112"
^/~v@:`p#[B0J0开启一个百度浏览器后,不需要对象库,直接运行以上脚本,通过以上的例子我们可以看到通过把对象的属性都描述下来,运行以上脚本并可直接在搜索框进行输入,运行的原理是一样的,只不过一个是QTP帮我们封装好了的对象库,而现在是我们通过把对象的属性都描述下来从而定位对象。
'F2h|$S9YG0 51Testing软件测试网 Di,V*_H:C
systemutil.Run "C:/Program Files/Internet Explorer/IEXPLORE.EXE","http://www.baidu.com/"
i)YR:o3HN0Browser("micClass:=Browser").Page("micClass:=Page").WebEdit("name:=wd").Set "zzxxbb112"51Testing软件测试网 m{0v ^
~I9|7wQm#^
执行完后我们可以看到字符串描述和上面的普通方法效果是一样的。51Testing软件测试网&c:Dy.B'seF6w6Z
51Testing软件测试网kv1MTG$^AFP
systemutil.Run "C:/Program Files/Internet Explorer/IEXPLORE.EXE","http://www.baidu.com/gaoji/advanced.html"51Testing软件测试网%Jl.c0A)Dq2~4O
Set all_oEdit = Description.Create
all_oEdit("micClass").value="WebEdit"51Testing软件测试网|4Q-x9?-]`7Q
Set all_oEdits = Browser("micClass:=Browser").Page("micClass:=Page").ChildObjects(all_oEdit)
For i = 0 to all_oEdits.count - 1
Set oEdit = all_oEdits.item(i)
oEdit.set "zzxxbb112"
Next
*vz
Y{ZJ^9E0使用此方法我们就可以通过遍历页面上所有同类型的对象并对其进行操作。51Testing软件测试网 `k/RX? L+T
'jep%E1T-Nfi0以上3钟情况的脚本都是只能在打开一个浏览器的情况下才能正常执行,否则就会报对象超过一个的错误,不能识别,因此当出现多窗口的情况我们可以使用CREATIONTIME这个属性来做顺序的控制。
o%O.i.N'^(Gi t]0systemutil.Run "C:/Program Files/Internet Explorer/IEXPLORE.EXE"51Testing软件测试网HG
z)^V8_
systemutil.Run "C:/Program Files/Internet Explorer/IEXPLORE.EXE"51Testing软件测试网I8HSA[
g$L m
Browser("CreationTime:=0").Navigate "http://blog.csdn.net/zzxxbb112"
m:Ngn6s,Kv`0Browser("CreationTime:=1").Navigate "http://www.baidu.com"
$Y%Y#a3ex?(}#q0使用以上代码QTP就能够分辨出多个浏览器的情况了,当然我也可以使用INDEX属性,大家可以试试。51Testing软件测试网#PA;gs-e,bg8U6c
注意:当我们使用Browser("CreationTime:=-1")时表明当前有且仅有一个浏览器窗口,当我们只需要一个浏览器的时候可以使用这个来作为判断依据。51Testing软件测试网
G%m
p
~[2s*xA
buBrowser=Browser("CreationTime:=-1").Exist(0)51Testing软件测试网kpSJnW%f
If buBrowser Then51Testing软件测试网?
Fn!j e YGN$]
msgbox "存在一个浏览器窗口"51Testing软件测试网%O"Gcx2`hY
h
else51Testing软件测试网`f%^'gR
msgbox "存在0个或者多个浏览器窗口"51Testing软件测试网,{t3Ih5u;~B
End If