【发布时间】:2016-04-11 13:45:37
【问题描述】:
我正在使用一个名为 BrowserError.vbs 的 VBScript 文件,它接受正在使用的 Java 类的一个参数。 vbs文件用于在测试用例失败时发送电子邮件并附上截图。
问题:
如果我从命令提示符运行 vbs 文件,它可以正常工作并发送带有附件的电子邮件。
但是如果我从 Java 类运行它会给出以下错误:
.vbs TL02_Validate_ChaterInvalidLogin-1-11Apr16_045433 没有脚本引擎
BrowserError.vbs:
Dim ToAddress
Dim MessageSubject
Dim MessageBody
Dim MessageAttachment
Dim name
Dim folder
Dim displayMsg
Dim ol, ns, newMail
name = WScript.Arguments.Item(0)
FromAddress = "abc@def.com"
ToAddress = "abc@def.com"
CcAddress = "abc@def.com"
MessageSubject = "Sanity Error Alert !!!"
Set ol = WScript.CreateObject("Outlook.Application")
Set ns = ol.getNamespace("MAPI")
Set newMail = ol.CreateItem(olMailItem)
MessageAttachment = "C:\Users\****\Desktop\********\CnetWorkSpaceBranch\SanityBranch\target\surefire-reports\html\screenshots\" & name & ".png"
Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile(MessageAttachment, 1)
strFileText = "Hi, Error notification on Sanity- User has encountered problem : Refer screenshot "
objFileToRead.Close
Set objFileToRead = Nothing
newMail.Subject = MessageSubject & Now
newMail.HTMLBody = strFileText
newMail.To = ToAddress
newMail.CC = CcAddress
newMail.Display
newMail.Attachments.Add(MessageAttachment).Displayname = "Check this out"
newMail.Send
Set ol = Nothing
用于传递参数的Java代码如下:
String tnm="TL02_Validate_ChaterInvalidLogin-1-11Apr16_045433";
Runtime.getRuntime().exec("wscript C:/BrowserError.vbs"+tnm);
我的核心兴趣是只发送电子邮件并在运行和发送电子邮件时从 Java 类中获取值。
【问题讨论】:
-
在 Java 中,对于 vbs 程序员来说,
.vbs后面应该有一个空格。错误消息说它正在尝试执行一个扩展名为vbsTL02_Validate_ChaterInvalidLogin-1-11Apr16_045433的脚本,其中没有一个。 -
看到这个Stackoverflow Q&A 或者this。我的建议(和 Stackoverflow 规则)是您在发布之前搜索错误消息。否则,事情会因多余的低营养职位而变得混乱。如果我的指点没有帮助,请告诉我。