验证页面连接方法
上一篇 / 下一篇 2008-06-01 11:18:41 / 个人分类:QTP
SE` Ka1do01。 验证baidu上面所有的连接是否可用
2z%C-U
c |#u0set a= Browser("百度一下,你就知道")
'\7Bm-i#PMV0set b= Browser("百度一下,你就知道").Page("百度一下,你就知道")
*NC&Pl6S|*I0call CheckLinks(a,b)
Function CheckLinks (BrowserObject,BrowserPage)
'}0NY+T
h:{ec8[0CheckLinks=TRUE
p SiM\7? m'`0Dim s_URL,i_CreationTime
L4@UW-R["?0Dim s_LinkOuterText,s_LinkInnerText,s_Linkhref
t+N!u`f3i5QZs0s_URL=BrowserPage.GetROProperty("url")
|#l6P.BTKz0i_CreationTime=1
#G3WZi[7~0i_LinkCount=BrowserPage.object.links.length - 1
1~E eG){Xt1u%I%I0Dim i_Link
"D e5C v8s`uj'V0 51Testing软件测试网|+K/_cCFor i_Link=0 to i_LinkCount51Testing软件测试网 q#ii _~j
w`:Gu
Um
If Trim(BrowserPage.object.links(i_Link).target)="" Then51Testing软件测试网]Y;@*Gc
UY
BrowserPage.object.links(i_Link).target="_blank" ' Set the link to open i a new window so that we dont have any change in current window 51Testing软件测试网w-sM1Y.`m
End If51Testing软件测试网O9n,V:A4]
N\&]0o
`E0BrowserPage.object.links(i_Link).click
6jxVPz]
A0On error resume next
;[)}
LN8^k&D"tj0Browser("CreationTime:=" & i_CreationTime).sync
} ^fTMRxL0Browser("CreationTime:=" & i_CreationTime).Page("micClass:=Page").sync
6Nv]6_ot&j9C0On error goto 0
m1{b6a0}j2Sp4j0Dim s_LinkDetails
IHTML = Browser("CreationTime:=" & i_CreationTime).Page("micClass:=Page").object.Body.innerHTML51Testing软件测试网Po,A6M8o
'Check if page was not able to be displayed 51Testing软件测试网)e;B&kh!Q`!Ih/A/]!k/c
If (InStr(IHTML,"HTTP 404") <> 0) Or (InStr(IHTML,"cannot be displayed") <> 0) Then
|'iwSc$yl$~ vA0s_LinkDetails="Link Broken" + vbcrlf + "Link Details:" +vbcrlf
O1V$ax XIy2A'A!S0s_LinkDetails=s_LinkDetails+"OuterText: "+ s_LinkOuterText + vbcrlf 51Testing软件测试网&Ps%i"{8n~8wNe.w
s_LinkDetails=s_LinkDetails+"InnerText: "+ s_LinkInnerText + vbcrlf51Testing软件测试网6m'TG$f(g%mg
s_LinkDetails=s_LinkDetails+ "href: " + s_Linkhref+ vbcrlf
]Ry1[
p
x%H T\0s_LinkDetails=s_LinkDetails+ "Links Open in New Browse: " & bNewBrowser & vbcrlf
|0xLafV5i0Reporter.ReportEvent micWarning,"Check Link(" & i_Link & ") -> " & s_LinkOuterText ,s_LinkDetails
(SHV2D-B:A)E0CheckLinks=FALSE51Testing软件测试网 j;oY&IM^8k
Else
p)~Z#?M/f;R0s_LinkDetails="Link Working" + vbcrlf + "Link Details:" +vbcrlf
fI6q9x-S/T I0s_LinkDetails=s_LinkDetails+"OuterText: "+ s_LinkOuterText + vbcrlf51Testing软件测试网bxm&[ W!e.P3S
s_LinkDetails=s_LinkDetails+"InnerText: "+ s_LinkInnerText+ vbcrlf51Testing软件测试网
x(tb4w,td4Gv
s_LinkDetails=s_LinkDetails+ "href: " + s_Linkhref+ vbcrlf
|DoEa {2B~0s_LinkDetails=s_LinkDetails+ "Links Open in New Browse: " & bNewBrowser & vbcrlf
,y6X-Skm,o;ec0Reporter.ReportEvent micPass,"Check Link(" & i_Link & ") -> " & s_LinkOuterText ,s_LinkDetails 51Testing软件测试网uF8qSgKb;}+k
End If
Browser("CreationTime:=1").close ' Close the link open.
6U&hh7kZ;F%iU8N9P9po0Next
cE2j7a;dc
@0End Function
1rchy? tbN0列举应用程序:
;jV@tR!h0 51Testing软件测试网ni(d%Zn dFunction EnumerateApp(ParentObj, Desc, OperationMethod, PostOperationMethod, RestoreMethod)51Testing软件测试网
i/UZg/n
dim ObjCol, CurrentObj, idx
aNf e6Y+L|2~GmE;\0 idx = 051Testing软件测试网9U(z6r$M
E x+T
' retrieve a collection of all the objects of the given descrition51Testing软件测试网X5wl*s(kNf
Set ōbjCol = ParentObj.ChildObjects(Desc)51Testing软件测试网-xT-amy jyj
$[ruU}&n0 Do While (idx < ObjCol.Count)51Testing软件测试网%M-aI_xS't
' get the current object
6N
`E
p~0 set CurrentObj = ObjCol.item(idx)
n.GQ0Mz0
P&O qQs%P.X0 ' perform the desired operation on the object51Testing软件测试网,\_0[7c!p
L6T
eval("CurrentObj." & OperationMethod)
:keJ{!}0 51Testing软件测试网mND-Pm*?m9T
' perform the post operations (after the object operation)
0G7y#L;@;E
l7ljH0 eval(PostOperationMethod & "(ParentObj, CurrentObj)")51Testing软件测试网]#OCxD'g(q"G
nY&}%i8c7G,O,v6Q0 ' Return the application to the original state51Testing软件测试网b-c8E,T:X+z(l5P
u
eval(RestoreMethod & "(ParentObj, CurrentObj)")51Testing软件测试网w(y6}
nU!MD:B2Nl
51Testing软件测试网{2tEkcw3K8G&jV%{
idx = idx + 151Testing软件测试网*Ds9cZr[
' reretrieve the collection of objects51Testing软件测试网'a"N!{.R"m
' (as the application might have changed)51Testing软件测试网%u0S+i`L#q-~*s
Set ōbjCol = ParentObj.ChildObjects(Desc)51Testing软件测试网&mj0q3l:t}]
Loop51Testing软件测试网7jlagK"s
End Function51Testing软件测试网&y M6[h*`
51Testing软件测试网!w3t2SuY%a"d
' ********************************** An Example of usage **********************
:uk2|"YH0dD0' Report all the pages refered to by the corrent page51Testing软件测试网4\e8a9e5s
' ***********************************************************************************
f[M~h4~
P9dV0
'?^{\~nZEQE0Function ReportPage(ParentObj, CurrentObj)
8_!N9G~S Y(H0 dim FuncFilter, PageTitle
+JvP$K0?6B1{1K0
XrEXf0 PageTitle = ParentObj.GetROProperty("title")51Testing软件测试网?Faw`-k[
Qx(kl8aMU&Qz0 FuncFilter = Reporter.Filter51Testing软件测试网8\:`*`)|J0m
Reporter.Filter = 051Testing软件测试网1LRG2P@
Reporter.ReportEvent 0, "Page Information", "page title " & PageTitle51Testing软件测试网-Q;^!Mxd,M(F*g~
Reporter.Filter = FuncFilter
(b8Wp/zv+l{S,\0End Function51Testing软件测试网6Z%]P2@6Pz(D7U:i
51Testing软件测试网]6z$M'fue N#]
Function BrowserBack(ParentObj, CurrentObj)
;T:pl8[0Kp [0 BrowserObj.Back51Testing软件测试网*`5aPEm _^
End Function51Testing软件测试网 a6j qj.g-s)H
2F4F4v!P`~lf0' save the Report Filter mode51Testing软件测试网_0{1t,x+z4roL
OldFilter = Reporter.Filter
det
h3FD?0Reporter.Filter = 2 ' Enables Errors Only51Testing软件测试网ZuB-^r;I(qA!f:C
7b"`0_#_}9O0' Create the descrīption of the Link object
FguU^0Set Desc = Descrīption.Create()