/// <summary> Compares screenshot of an element </summary> /// <param name="driver">Driver</param> /// <param name="baselineImageDir">Baseline screenshot directory</param> /// <param name="baselineImageName">Baseline screenshot name</param> /// <param name="element">Web element</param> /// <param name="tolerance"></param> public static void CompareElementImage(IWebDriver driver, string baselineImageDir, string baselineImageName, IWebElement element, double tolerance = 0.1) { var timeStamp = TimeStamp(); var copiedBaselineImageFileName = timeStamp + "-" + baselineImageName + "-Expected"; var actualImageFileName = timeStamp + "-" + baselineImageName + "-Actual"; var diffImageFileName = timeStamp + "-" + baselineImageName + "-Diff"; var baselineImage = baselineImageDir + baselineImageName + ".png"; var copiedBaselineImage = ComparisonDir + copiedBaselineImageFileName + ".png"; var diffImage = ComparisonDir + diffImageFileName + ".png"; Directory.CreateDirectory(ComparisonDir); #if NETFRAMEWORK var actualImage = CaptureElementBitmap(driver, ComparisonDir, actualImageFileName, element); #else var actualImage = CaptureElementBitmap(driver, ComparisonDir, actualImageFileName, element); #endif File.Copy(baselineImage, copiedBaselineImage); ImageOperations.CompareResult result = ImageOperations.CompareImage(copiedBaselineImage, actualImage, diffImage, tolerance); Log.Info("result: " + result); if (result != ImageOperations.CompareResult.Match) { Assert.Fail("Web element image is not the same within tolerance value " + tolerance); } }
/// <summary> Compares image of entire Web browser window</summary> /// <param name="driver">Driver</param> /// <param name="baselineImageDir">Baseline image directory</param> /// <param name="baselineImageName">Baseline image name</param> /// <param name="tolerance">Comparison tolerance</param> public static void CompareWindow(IWebDriver driver, string baselineImageDir, string baselineImageName, double tolerance = 0.9) { var timeStamp = TimeStamp(); var copiedBaselineImageFileName = timeStamp + "-" + baselineImageName + "-Expected"; var actualImageFileName = timeStamp + "-" + baselineImageName + "-Actual"; var diffImageFileName = timeStamp + "-" + baselineImageName + "-Diff"; var baselineImage = baselineImageDir + baselineImageName + ".png"; var copiedBaselineImage = ComparisonDir + copiedBaselineImageFileName + ".png"; var diffImage = ComparisonDir + diffImageFileName + ".png"; Directory.CreateDirectory(ComparisonDir); var actualImage = SaveScreenShot(driver, ComparisonDir, actualImageFileName); File.Copy(baselineImage, copiedBaselineImage); ImageOperations.CompareResult result = ImageOperations.CompareImage(copiedBaselineImage, actualImage, diffImage, tolerance); Log.Info("result: " + result); if (result != ImageOperations.CompareResult.Match) { Assert.Fail("Window image is not the same within tolerance value " + tolerance); } }