使用c#将Selenium中的屏幕截图图像文件名插入XML

时间:2016-11-10 21:57:26

标签: c# xml selenium-webdriver

我有一个自定义的HTML(通过XML / XSLT创建)测试状态报告,它基本上列出了执行的自动脚本的结果的步骤,结果和注释。由于我还是编程新手,我想知道获取捕获的屏幕截图(使用Selenium中的ITakesScreenshot)文件名并在XML节点中插入此文件名的最佳方法是什么? 我的下面的代码是截图捕获:

  public static void takeScreenShot()
    {
        string currentDate = DateTime.Now.ToString("ddd, ddMMMyyyy HHmm");
        ITakesScreenshot screenshotHandler = Driver as ITakesScreenshot;
        Screenshot screenshot = screenshotHandler.GetScreenshot();
        string dir = @"C:\Documents\";
        screenshot.SaveAsFile(dir + currentDate + fileName + ".png", ImageFormat.Png);
    }

及以下是我在XML节点上的插入值:

 private static void InsertValues(string ID, string Step, string Result, string Comment)
    {

        var xmlDoc = XDocument.Load(xmltoLoad);

        var newElement = new XElement("TestCase",  new XAttribute("Id", ID),
                           new XElement("Screenshot", ""),
                           new XElement("Step", Step),
                           new XElement("Result", Result),
                           new XElement("Comments", Comment));
        xmlDoc.Element("TestResults").Add(newElement);
        xmlDoc.Save(xmltoLoad);

    }

我正在尝试

string filename = screenshot.SaveAsFile(dir+currentDate+fileName+".png", ImageFormat.png);

但我收到一个错误,即无法将void转换为字符串,我理解。有什么我可以做或有任何其他方法吗?

1 个答案:

答案 0 :(得分:2)

class Cuboid { constructor(length, width, height) { this.length = length || 0; this.width = width || this.length; this.height = height || this.width; } // .... 没有返回任何内容,因此无法将内容返回.SaveAsFile()。有什么理由你不能做到

filename