QTP: Получить список всех ссылок в электронном письме - PullRequest
1 голос
/ 16 февраля 2009

Я «разрабатываю» план тестирования в Mercury / HP QuickTest Pro 9.1, в котором я должен извлечь список всех ссылок в электронном письме и выполнить логику для каждой из них.

В этом случае я использую веб-почту, поэтому сообщение будет отображаться как веб-страница; хотя я надеюсь использовать Outlook позже для репликации более реалистичного UX.

Я разработчик, а не тестер. Может кто-нибудь предоставить мне какой-нибудь «код», который будет выполнять это извлечение?

Ответы [ 3 ]

3 голосов
/ 17 февраля 2009

Вы можете вызвать метод ChildObjects, чтобы вернуть коллекцию дочерних объектов данного типа. Например, чтобы получить список всех объектов Link на домашней странице 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

Так что вам просто нужно определить веб-элемент, который содержит тело письма, и использовать его в качестве родительского элемента для поиска.

1 голос
/ 17 февраля 2009

Если вы в конечном итоге идете по маршруту 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 голосов
/ 12 мая 2011
'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
...