我制作了一个简单的 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 连接到它(自动化测试需要与桌面交互,在计算机锁定时无法运行。)这是我的问题。有时打印屏幕没有占用屏幕。
所以我的问题是:有没有其他方法可以编写“更好”的方法,或者我当前的方法有问题吗?欢迎任何建议。
我的调查得出了这样的结论。
- 屏幕保护程序或类似停用。
- 它可以在我的本地机器上完美运行。
- 当我调试它时,一切都很好。
- 远程计算机只有一个屏幕。
从保存到文件中是否有任何我丢失的错误?
最好的问候乔纳斯