1。 验证baidu上面所有的连接是否可用
set a= Browser("百度一下,你就知道")
set b= Browser("百度一下,你就知道").Page("百度一下,你就知道")
call CheckLinks(a,b)
Function CheckLinks (BrowserObject,BrowserPage)
CheckLinks=TRUE
Dim s_URL,i_CreationTime
Dim s_LinkOuterText,s_LinkInnerText,s_Linkhref
s_URL=BrowserPage.GetROProperty("url")
i_CreationTime=1
i_LinkCount=BrowserPage.object.links.length - 1
Dim i_Link
For i_Link=0 to i_LinkCount
If Trim(BrowserPage.object.links(i_Link).target)="" Then
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
End If
BrowserPage.object.links(i_Link).click
On error resume next
Browser("CreationTime:=" & i_CreationTime).sync
Browser("CreationTime:=" & i_CreationTime).Page("micClass:=Page").sync
On error goto 0
Dim s_LinkDetails
IHTML = Browser("CreationTime:=" & i_CreationTime).Page("micClass:=Page").object.Body.innerHTML
'Check if page was not able to be displayed
If (InStr(IHTML,"HTTP 404") <> 0) Or (InStr(IHTML,"cannot be displayed") <> 0) Then
s_LinkDetails="Link Broken" + vbcrlf + "Link Details:" +vbcrlf
s_LinkDetails=s_LinkDetails+"OuterText: "+ s_LinkOuterText + vbcrlf
s_LinkDetails=s_LinkDetails+"InnerText: "+ s_LinkInnerText + vbcrlf
s_LinkDetails=s_LinkDetails+ "href: " + s_Linkhref+ vbcrlf
s_LinkDetails=s_LinkDetails+ "Links Open in New Browse: " & bNewBrowser & vbcrlf
Reporter.ReportEvent micWarning,"Check Link(" & i_Link & ") -> " & s_LinkOuterText ,s_LinkDetails
CheckLinks=FALSE
Else
s_LinkDetails="Link Working" + vbcrlf + "Link Details:" +vbcrlf
s_LinkDetails=s_LinkDetails+"OuterText: "+ s_LinkOuterText + vbcrlf
s_LinkDetails=s_LinkDetails+"InnerText: "+ s_LinkInnerText+ vbcrlf
s_LinkDetails=s_LinkDetails+ "href: " + s_Linkhref+ vbcrlf
s_LinkDetails=s_LinkDetails+ "Links Open in New Browse: " & bNewBrowser & vbcrlf
Reporter.ReportEvent micPass,"Check Link(" & i_Link & ") -> " & s_LinkOuterText ,s_LinkDetails
End If
Browser("CreationTime:=1").close ' Close the link open.
Next
End Function
列举应用程序:
Function EnumerateApp(ParentObj, Desc, OperationMethod, PostOperationMethod, RestoreMethod)
dim ObjCol, CurrentObj, idx
idx = 0
' retrieve a collection of all the objects of the given descrition
Set ōbjCol = ParentObj.ChildObjects(Desc)
Do While (idx < ObjCol.Count)
' get the current object
set CurrentObj = ObjCol.item(idx)
' perform the desired operation on the object
eval("CurrentObj." & OperationMethod)
' perform the post operations (after the object operation)
eval(PostOperationMethod & "(ParentObj, CurrentObj)")
' Return the application to the original state
eval(RestoreMethod & "(ParentObj, CurrentObj)")
idx = idx + 1
' reretrieve the collection of objects
' (as the application might have changed)
Set ōbjCol = ParentObj.ChildObjects(Desc)
Loop
End Function
' ********************************** An Example of usage **********************
' Report all the pages refered to by the corrent page
' ***********************************************************************************
Function ReportPage(ParentObj, CurrentObj)
dim FuncFilter, PageTitle
PageTitle = ParentObj.GetROProperty("title")
FuncFilter = Reporter.Filter
Reporter.Filter = 0
Reporter.ReportEvent 0, "Page Information", "page title " & PageTitle
Reporter.Filter = FuncFilter
End Function
Function BrowserBack(ParentObj, CurrentObj)
BrowserObj.Back
End Function
' save the Report Filter mode
OldFilter = Reporter.Filter
Reporter.Filter = 2 ' Enables Errors Only
' Create the descrīption of the Link object
Set Desc = Descrīption.Create()
Desc("html tag").Value = "A"
Set BrowserObj = Browser("creationtime:=0")
Set PageObj = BrowserObj.Page("index:=0")
' Start the enumeration
call EnumerateApp(PageObj, Desc, "Click", "ReportPage", "BrowserBack")
Reporter.Filter = OldFilter ' returns the original filter