我有一个用例如下,
Process proc = Process.Start("myproc.exe");
AutomationElement automationElement = AutomationElement.RootElement.FindFirst(TreeScope.Children,
new System.Windows.Automation.PropertyCondition(AutomationElement.ProcessIdProperty,
proc.Id));
var imageAutomationElmt = automationElement .FindFirst
(TreeScope.Descendants, new System.Windows.Automation.PropertyCondition
(AutomationElement.AutomationIdProperty, "imageData"));
上面的代码从我的UI中获取了imageData。有没有办法将imageData(“Image”类型)保存为文件。我尝试使用屏幕捕获方法,但由于我的应用程序启用了滚动条,拍摄屏幕截图无法正常工作。
有没有办法将图像数据从图像的自动化元素保存到文件? TIA。
答案 0 :(得分:1)
如果您将使用TestStack.White,您可以使用Image类来获取图像字节,VisibleImage属性返回Bitmap对象然后您可以使用ImageConverter将位图转换为字节数组,然后使用简单的File.IO和方法WriteAllBytes可以将图像保存到文件中。
var visibleImage = ChangeIcon.VisibleImage;
ImageConverter imgConverter = new ImageConverter();
var bytes = (byte[])imgConverter.ConvertTo(visibleImage, typeof(byte[]));
File.WriteAllBytes($"icon_{new Random().Next()}.bmp", bytes);
(ChangeIcon属性类型为Image)