3

我制作了一个简单的 PrintScreen 方法,当我的自动化测试失败时我会使用它。这只是为了让我可以在错误发生时通过电子邮件发送错误和屏幕的打印屏幕。这就是 PrintScreen.Save() 的代码的样子。

public static class PrintScreen
{
    public static string Save(string fileName)
    {
        var printScreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
        var graphics = Graphics.FromImage(printScreen);
        graphics.CopyFromScreen(0, 0, 0, 0, printScreen.Size);
        if (File.Exists(fileName))
            File.Delete(fileName);
        printScreen.Save(fileName, ImageFormat.Jpeg);
        Thread.Sleep(500);
        return fileName;
    }
}

当我在我的计算机上运行测试时,该方法运行良好。但是我们使用另一台计算机进行预定的自动化测试。我通过 RDP 连接到它(自动化测试需要与桌面交互,在计算机锁定时无法运行。)这是我的问题。有时打印屏幕没有占用屏幕。

所以我的问题是:有没有其他方法可以编写“更好”的方法,或者我当前的方法有问题吗?欢迎任何建议。

我的调查得出了这样的结论。

  • 屏幕保护程序或类似停用。
  • 它可以在我的本地机器上完美运行。
  • 当我调试它时,一切都很好。
  • 远程计算机只有一个屏幕。

从保存到文件中是否有任何我丢失的错误?

最好的问候乔纳斯

4

1 回答 1

0

很抱歉打扰你们这个问题。但是代码中没有任何具体的错误。原来是防病毒程序删除了其中一些文件,但不是所有人。而且我本地计算机上的病毒程序也不一样。我现在已经设法将我的流程添加为安全流程,现在我认为它可以工作。我已经尝试了几次,效果更好。

感谢您的回复,他们让我更深入地考虑了我的代码,很抱歉占用您的时间。//乔纳斯

于 2012-08-03T08:31:16.643 回答