Добавление HTML-таблиц с помощью сценариев vb в электронное письмо OUTLOOK

Я хочу инициировать почту Outlook, когда я запускаю пакет случаев автоматизации через UFT 12.50. Я хочу создать 2 таблицы в электронной почте. 1 таблица, содержащая информацию о количестве пройденных и не пройденных дел, и 2-я таблица, дающая информацию обо всех провалившихся делах.

Я использую для этого приведенный ниже код, и создание 1-й таблицы в порядке. Для второй таблицы мне придется пройтись по списку, содержащему все неудачные случаи, используя цикл for each или for.

Но когда я пытаюсь включить сценарий VB в html, UFT выдает ошибку, прикрепленную к снимку экрана.

Пожалуйста, дайте мне знать, есть ли другой способ создания таблиц для электронной почты Outlook с помощью сценариев VB. А также, пожалуйста, дайте мне знать, как включить циклы for внутри html в UFT.

Ниже приведен фрагмент кода:

[Dim oOutlook, oEmail, vEmailTo

vEmailTo = "[email protected]"
execDate = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " Time: " & Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)

passCount = 10
totalCount = 30
abortCount = 10
failCount = 10
passPercent = round((passCount/totalCount)*100)
dim myList
Set myList = CreateObject("System.Collections.ArrayList")
myList.Add("a")
myList.Add("b")
myList.Add("c")

vEmailSubject = "Test Automation report for execution on: " & execDate

Set oOutlook = CreateObject("Outlook.Application")
Set oEmail = oOutlook.CreateItem(0)

oEmail.To = vEmailTo
oEmail.Subject = vEmailSubject

oEmail.Attachments.Add("D:\AutomationTestReport_14-9-2015-15-20-21.html")

oEmail.HTMLBody = "<HTML>"&_
"<p style=font-size:12pt;font-family:Calibri>Hi Team,</p>"&_
"<p style=font-size:12pt;font-family:Calibri> </p>"&_
"<p style=font-size:12pt;font-family:Calibri>Below is the automation test suite result for the execution on " & Day(Date) & "/" & Month(Date) & "/" & Year(Date) & ".</p>"&_
"<p style=font-size:12pt;font-family:Calibri> </p>"&_
"<p style=font-size:12pt;font-family:Calibri> </p>"&_
"<TABLE BORDER=5    BORDER-COLOR=BLACK    WIDTH=100%   CELLPADDING=4 CELLSPACING=3>"&_  
  "<TR>"&_
      "<TH COLSPAN=5><BR><H3><p style=font-size:25pt;font-family:Calibri><strong>Automation Test Result</strong></p></H3>"&_
      "</TH>"&_
   "</TR>"&_
   "<TR>"&_
      "<TH><p style=font-size:15pt;font-family:Calibri>TOTAL COUNT</p></TH>"&_
      "<TH><p style=background-color:green;font-size:15pt;font-family:Calibri>PASS</p></TH>"&_  
      "<TH><p style=background-color:red;font-size:15pt;font-family:Calibri>FAIL</p></TH>"&_
      "<TH><p style=background-color:red;font-size:15pt;font-family:Calibri>ABORTED</p></TH>"&_
      "<TH><p style=font-size:15pt;font-family:Calibri>PASS PERCENTAGE</p></TH>"&_
   "</TR>"&_
   "<TR ALIGN=CENTER>"&_
      "<TD><p style=font-family:Calibri>" & totalCount & " </p></TD>"&_ 
      "<TD><p style=font-family:Calibri>" & passCount & " </p></TD>"&_
      "<TD><p style=font-family:Calibri>" & failCount & " </p></TD>"&_
      "<TD><p style=font-family:Calibri>" & abortCount & " </p></TD>"&_
      "<TD><p style=font-family:Calibri>" & passPercent & " </p></TD>"&_
   "</TR>"&_
"</TABLE>"&_
"<p style=font-size:12pt;font-family:Calibri> </p>"&_
"<p style=font-size:12pt;font-family:Calibri> </p>"&_
"<TABLE BORDER=5    WIDTH=100%   CELLPADDING=4 CELLSPACING=3>"&_  
  "<TR>"&_
      "<TH COLSPAN=5><BR><H3><p style=font-size:25pt;font-family:Calibri><strong>Test Cases Failed</strong></p></H3>"&_
      "</TH>"&_
   "</TR>"&_
"<SCRIPT LANGUAGE=""VBScript"">"&_
<!--
   Function CanDeliver(Dt)
      CanDeliver = (CDate(Dt) - Now()) > 2
   End Function
-->
"</SCRIPT>"&_
"</HTML>"

wait 2
oEmail.Send
wait 2

Set oEmail = Nothing
Set oOutlook = Nothing][1]

person sKen    schedule 08.10.2015    source источник
comment
Я бы не советовал делать это, потому что многие провайдеры электронной почты удаляют весь HTML-код из любых электронных писем, прежде чем отправлять их своим получателям. так что возможно, вы могли бы сделать всю эту работу и сделать ее недоступной для людей, которым вы хотите ее отправить.   -  person Mike_OBrien    schedule 08.10.2015


Ответы (1)


Вы пытались отлаживать код? Вы получаете какие-либо ошибки?

Где и когда вы запускаете скрипт?

Только браузеры Internet Explorer могут запускать такой код и создавать экземпляр класса Application. Если вы вставили его в тело сообщения — Outlook применил к скрипту строгие правила и не позволяет запускать небезопасный код. Итак, ваш код можно просто отключить.

Также помните, что Майкрософт в настоящее время не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого необслуживаемого, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и службы NT), потому что Office может демонстрировать нестабильное поведение и/или зависание при запуске Office в этой среде.

Если вы создаете решение, работающее в контексте на стороне сервера, вам следует попытаться использовать компоненты, защищенные от автоматического выполнения. Или вы должны попытаться найти альтернативы, которые позволяют хотя бы части кода выполняться на стороне клиента. Если вы используете приложение Office из решения на стороне сервера, у приложения не будет многих необходимых возможностей для успешной работы. Кроме того, вы рискуете стабильностью всего решения. Подробнее об этом читайте в статье Соображения по автоматизации Office на стороне сервера.

person Eugene Astafiev    schedule 10.10.2015