2009-02-16 16 views
1

Je "développe" un plan de test dans Mercury/HP QuickTest Pro 9.1, dans lequel je dois extraire une liste de tous les liens dans un E-mail et effectuer la logique contre chacun d'eux.QTP: Obtenir la liste de tous les liens dans un E-mail

Dans ce cas, j'utilise Webmail, de sorte que le message apparaîtra sous la forme d'une page Web; si j'espère utiliser Outlook plus tard pour reproduire un UX plus réaliste. Je suis un développeur et non un testeur. Quelqu'un peut-il me fournir un "code" qui va effectuer cette extraction?

Répondre

3

Vous pouvez appeler la méthode ChildObjects pour renvoyer une collection d'objets enfants d'un type donné. Par exemple, pour obtenir une liste de tous les objets de lien sur la page d'accueil de Google:

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 

Vous avez juste besoin d'identifier l'élément Web qui contient le corps de l'e-mail et l'utiliser comme parent pour la recherche .

1

Si vous finissez par utiliser la route Outlook, vous pouvez utiliser l'API Outlook pour le faire, sans avoir à utiliser le code GUI de QTP.

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

Bienvenue sur Stack Overflow! Plutôt que de publier uniquement un bloc de code, veuillez expliquer pourquoi ce code résout le problème posé. Sans explication, ce n'est pas une réponse. – Artemix