etao搜索

从老外网站上Down下来的检查网站链接有效性的QTP代码

上一篇 / 下一篇  2008-12-13 15:04:00 / 个人分类:QTP

Function CheckLinks2 (BrowserObject,BrowserPage)
 CheckLinks2=TRUE
 Dim orgURL,orgCreationTime
 Dim i_Link, l_hWnd
 Dim b_newBrowser
 Dim s_LinkOuterText,s_LinkInnerText,s_Linkhref

 s_URL=BrowserPage.GetROProperty("url")
 l_hWnd=BrowserObject.GetROProperty("hwnd")
 
 i_CreationTime=1
 
 i_LinkCount=BrowserPage.object.links.length - 1
 
 For i_Link=0 to i_LinkCount

   If Trim(BrowserPage.object.links(i_Link).target)="" and Instr(BrowserPage.object.links(i_Link).href,"javascrīpt:")=0 Then
    b_newBrowser=False
   else
    b_newBrowser=TRUE
     End If
 
   s_LinkOuterText=BrowserPage.object.links(i_Link).outerText
   s_LinkInnerText=BrowserPage.object.links(i_Link).innerText
   s_Linkhref=BrowserPage.object.links(i_Link).href

   BrowserPage.object.links(i_Link).click

   'Doing Browser.Exist with CreationTime:=1 when the browser does not exist will give TRUE so i though of work around to compare the windows
   ' handle for the old browser and the new browser with CreationTime:=1. If they are same that mean no other window was opened.
   If b_newBrowser Then
    l_newhWnd=Clng(Browser("CreationTime:=" & i_CreationTime).GetROProperty("hwnd"))
    If  clng(l_hWnd) =l_newhWnd Then
     b_newBrowser=False
    end if
   end if
   
   On error resume next
   If b_NewBrowser Then
    Browser("CreationTime:=" & i_CreationTime).sync
    Browser("CreationTime:=" & i_CreationTime).Page("micClass:=Page").sync
   Else
    BrowserObject.sync
    BrowserPage.sync
   End if
   On error goto 0
   
   Dim s_LinkDetails
 
   If b_NewBrowser Then
    IHTML = Browser("CreationTime:=" & i_CreationTime).Page("micClass:=Page").object.Body.innerHTML
   else
    IHTML = BrowserPage.object.Body.innerHTML
   End If

   'Check if page was not able to be displayed you can update this code any time
   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
    CheckLinks2=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
 
   If b_NewBrowser Then
    while Clng(Browser("CreationTime:=" & i_CreationTime).GetROProperty("hwnd"))<>l_hwnd
     On error resume next
     Browser("CreationTime:=" & i_CreationTime).Sync
     Browser("CreationTime:=" & i_CreationTime).Page("micClass:=Page").Close
     On error goto 0
     Browser("CreationTime:=" & i_CreationTime).Close
     'Tackle links that open a new browser and also opens a popup using that
     'i_CreationTime=i_CreationTime + 1
    Wend
    
    i_CreationTime=1
    
   else
    On error resume next
    BrowserObject.Navigate s_URL
    BrowserObject.Sync
    BrowserObject.Page.Sync
    On error goto 0
   end if
 Next
End Function

 

'*********************  In QTP **************8
 Set BrowserObject = Browser("micClass:=Browser","CreationTime:=0")
 Set BrowserPage = BrowserObject.Page("micClass:=Page")
 CheckLinks2 BrowserObject,BrowserPage
'*********************************************8


 


TAG: QTP

 

评分:0

我来说两句

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 16517
  • 日志数: 11
  • 建立时间: 2008-12-10
  • 更新时间: 2010-06-10

RSS订阅

Open Toolbar