作为某些自动化测试的一部分,我正在使用UITestControl.CaptureImage()
截取UI元素的屏幕截图,并将它们与预期结果进行比较。这在我的Windows 7环境中工作得很好,但是当我开始在Windows XP机器上运行测试时,它会生成与Win7图像略有不同的图像。也就是说,它们是像素对像素相同,但显示其他差异:
代码非常简单:
public Image TakeWindowScreenshot()
{
Image screenshot = null;
screenshot = uiMapAds.TestApplication.UIItemWindow.UIItemImage.CaptureImage();
return screenshot;
}
string pathToNewScreenshot = "C:\foo.bmp";
Image screenshot = TakeWindowScreenShot();
Bitmap screenshotBitmap = new Bitmap(screenshot);
screenshotBitmap.Save(pathToNewScreenshot);
有谁知道这里发生了什么?它在Windows 8中也可以正常工作,因此XP是异常值。另一件可能很重要的事情是Windows XP机器/操作系统是32位而其他机器是64位,尽管所有位图都是32 BPP。