2009-02-16 88 views
1

我正在「開發」Mercury/HP QuickTest Pro 9.1中的測試計劃,其中我必須提取電子郵件中所有鏈接的列表並執行邏輯對他們每個人。QTP:獲取電子郵件中所有鏈接的列表

在這種情況下,我使用Webmail,因此該消息將顯示爲網頁;儘管我希望稍後可以使用Outlook來複制更實際的用戶體驗。

我是開發人員,而不是測試人員。任何人都可以提供我一些「代碼」,將執行此提取?

回答

3

您可以調用ChildObjects方法來返回給定類型的子對象的集合。例如,要獲得谷歌主頁上的所有鏈接對象的列表:

set oDesc = Description.Create() 
oDesc("micclass").Value = "Link" 
set links = Browser("title:=Google").Page("title:=Google").ChildObjects(oDesc) 
For i = 0 To links.Count-1 
    reporter.ReportEvent micInfo, links(i).GetROProperty("text"), "" 
Next 

所以,你只需要找到包含電子郵件的正文的Web元素,並用其作爲母公司的搜索。

1

如果您最終選擇使用Outlook路由,則可以使用Outlook API執行此操作,而無需使用QTP的GUI代碼。

sServer = "your.server.address.here" '"your.server.address.here" 
sMailbox = "JoeSmith" '"mailboxName" 

' build the ProfileInfo string 
sProfileInfo = sServer & vbLf & sMailbox 

' create your session and log on  
Set oSession = CreateObject("MAPI.Session") 
oSession.Logon "", "", False, True, 0, True, sProfileInfo 

' create your Inbox object and get the messages collection 
Set oInbox = oSession.Inbox 
Set oMessageColl = oInbox.Messages 

' get the first message in the collection 
Set oMessage = oMessageColl.GetFirst 

If oMessage Is Nothing Then 
    MsgBox "No messages found" 
Else 
    ' loop through inbox 
    Do 
    With oMessage 
     ' message data: 
     Debug.Print .Subject & vbCrLf & .TimeReceived & vbCrLf & .Text 
     ' this triggers the clever Outlook security dialog: 
     'Debug.Print .Sender(1) & vbCrLf & .Recipients(1) 
     Debug.Print 
    End With 

    Set oMessage = oMessageColl.GetNext 
    Loop Until oMessage Is Nothing 
End If 

'Logoff your session and cleanup 
oSession.Logoff 

Set oMessage = Nothing 
Set oMessageColl = Nothing 
Set oInbox = Nothing 
Set oSession = Nothing 
0
'write qtp script to display names of links in jkcwebsite page 
Option explicit 
Dim bro,url,n,desc,childs,i 
bro="c:\Program Files\Internet Explorer\IEXPLORE.EXE" 
url="http://ieg.gov.in/" 
invokeapplication bro&" "&url 
'create description for link type 
Set desc=description.Create 
desc ("micclass").value="link" 
'get all links in jkc page 
Set childs=browser("title:=Jawahar Knowledge Center").Page("title:=Jawahar Knowledge Center").ChildObjects(desc) 
For i=0 to childs.count-1 step 1 
    n=childs(i).getroproperty("name") 
    print n 
Next 
n=childs.count 
browser("title:=Jawahar Knowledge Center").Close 
+0

歡迎堆棧溢出!請不要僅發佈一段代碼,請解釋爲什麼此代碼可解決問題。沒有解釋,這不是一個答案。 – Artemix 2012-11-22 11:24:56

相關問題