共同探讨QTP相关问题

验证页面连接方法

上一篇 / 下一篇  2008-06-01 11:18:41 / 个人分类:QTP

SE`Ka1do01。 验证baidu上面所有的连接是否可用
2z%C-U c|#u0set a= Browser("百度一下,你就知道")
'\7B m-i#PMV0set b= Browser("百度一下,你就知道").Page("百度一下,你就知道")
*NC&Pl6S|*I0call CheckLinks(a,b)

:GXX5m-J0 51Testing软件测试网8i9@N6d,Q

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

iO!flH e6f0

1~Ee G){Xt1u%I%I0Dim i_Link

"D e5C v8s`uj'V0 51Testing软件测试网|+K/_cC

For 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

)K6e Kr0u a7p&i3?0 51Testing软件测试网-G}J7y HN j

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&k h!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$axXIy2A'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-S km,o;ec0Reporter.ReportEvent micPass,"Check Link(" & i_Link & ") -> " & s_LinkOuterText ,s_LinkDetails 51Testing软件测试网uF8qSgKb;}+k
End If

*Da+O0KpW/k4YF0 51Testing软件测试网@0u.{v0S;K_

Browser("CreationTime:=1").close ' Close the link open.
6U&hh7kZ;F%iU8N9P9po0Next
c E2j7a;dc @0End Function

y }W.q3wL%\d0

1rch y?tbN0列举应用程序:

;jV@tR!h0 51Testing软件测试网ni(d%Zn d

Function EnumerateApp(ParentObj, Desc, OperationMethod, PostOperationMethod, RestoreMethod)51Testing软件测试网 i/UZg/n
   dim ObjCol, CurrentObj, idx
aN f e6Y+L|2~Gm E;\0   idx = 051Testing软件测试网9U(z6r$M Ex+T
   ' retrieve a collection of all the objects of the given descrition51Testing软件测试网X5wl*s(kNf
   Set ōbjCol = ParentObj.ChildObjects(Desc)51Testing软件测试网-xT-amyjyj
 
$[ruU}&n0   Do While (idx < ObjCol.Count)51Testing软件测试网%M-a I_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 l7l jH0      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~SY(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软件测试网1LR G2P@
    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'fueN#]
Function BrowserBack(ParentObj, CurrentObj)
;T:pl8[0Kp [0    BrowserObj.Back51Testing软件测试网*`5aPEm _^
End Function51Testing软件测试网a6jqj.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()
z&dyq1^~ V0Desc("html tag").Value = "A"51Testing软件测试网-Io!D8j"S
 51Testing软件测试网 FV$bp"[ Z*K,e
Set BrowserObj = Browser("creationtime:=0")
\~ X0^ |d#c T0Set PageObj = BrowserObj.Page("index:=0")
TQsN}/A*E"Zzi Q+s0 
JZ|2quH0' Start the enumeration
Qs?~jZ0call EnumerateApp(PageObj, Desc, "Click", "ReportPage", "BrowserBack")51Testing软件测试网O2Pp:P.K5}
 
x'K*Z,l2Bh0Reporter.Filter = OldFilter ' returns the original filter 51Testing软件测试网,@v7pUU$D Ybi


TAG: QTP

 

评分:0

我来说两句

Open Toolbar