发送带附件的邮件失败

时间:2017-10-08 15:14:11

标签: protractor nodemailer

我正在尝试将.png文件附加到将通过Protractor运行的期望/规格失败时通过nodemailer 发送的邮件。 值得一提的是我使用protractor-jasmine2-screenshot-reporter进行截图捕获。

我在做什么:

browser.driver.wait(function() {
            return helper.checkURLAddress(browser.params.Test.URL.mojOLX); //will return false
            }, 2000)
            .then(function() {
            // success code
        },
//failure code goes below
        function() {
        var htmlFilePath = 'D:/Test/target/screenshots/my-report.html';
        var htmlFileContent = String(fs.readFileSync(htmlFilePath));
        var screenshotDirectory = "D:/Test/target/screenshots/chrome";
        helper.sendHTMLMail(htmlFileContent, helper.getMostRecentFileName(screenshotDirectory));
        }

获取最新文件的功能:

function getMostRecentFileName(dir) {
  var files = fs.readdirSync(dir);

  return _.max(files, function (f) {
    var fullpath = path.join(dir, f);
    return fs.statSync(fullpath).ctime;
});
}

带附件的mailOptions:

var mailOptions = {
            //from, to, subject go here
            attachments: {
              path: htmlFilePath
            }
        };

我得到的错误是: 错误:ENOENT:没有这样的文件或目录,打开'D:/Test/Screenshotname.png'。

屏幕截图的文件路径实际上是错误的,并且在路径中缺少3个目录以获取PNG(目标,屏幕截图,镶边)。

我认为这是由于未创建的目录,如thread中所述。但是这里的解决方案是等待用户完成的pdf创建,这不是这里的情况。

什么时候截图保存? 为什么函数不使用它在错误中显示的文件?

已编辑问题: 如何在创建屏幕截图后调用sendHTMLMail?

0 个答案:

没有答案