0
私はモバイルテストプロジェクトでimagecomparerを使用していますが、ベースラインイメージを現在のスクリーンショットと比較することができますが、問題は、スクリーンショットのセクションが常に変化している部分であり、その部分を除外したい場合です比較されることから。ここに私のコードは次のとおりです。私が比較されているから、全体のスクリーンショットから赤い四角形の内側の領域を除外したいのはここImagecomparerを使用すると、ToleranceRectangleの中央のセクションを比較対象から除外できますか?
private bool RunVisualCheck(string screen, string resultsPath, string baseline = "baseline.jpeg", string screenshot = "screenshot.jpeg")
{
GetScreenshot(resultsPath + screenshot);
var baselineImage = Image.FromFile(resultsPath + baseline);
var actualImage = Image.FromFile(resultsPath + screenshot);
Image diffImage;
int ignoreTop = 64;
var compareArea = new List<ToleranceRectangle>
{
new ToleranceRectangle()
{
Rectangle = new Rectangle(0,ignoreTop,baselineImage.Width, baselineImage.Height - ignoreTop),
Difference = new ColorDifference()
}
};
bool goodCompare = ImageComparer.Compare(actualImage, baselineImage, compareArea, out diffImage);
if (!goodCompare)
{
diffImage.Save(resultsPath + "diffImage.jpeg");
}
return goodCompare;
}
private void GetScreenshot(string pathFile)
{
System.Threading.Thread.Sleep(2000); // Temp fix to wait until page loads
var srcFiler = ((ITakesScreenshot)mobileDriver).GetScreenshot();
srcFiler.SaveAsFile(pathFile, ImageFormat.Jpeg);
}
は(アプリがテストされていない)の例です。
これを行う簡単な方法はありますか?
私はリスト内の個々のセクションを追加することを試していますが、これは、トップ、サイドのために、私は除外したいエリアの下に四角形を追加するために私を必要とします。代わりに除外のための1つの四角形を持つだけでいいですか? –
RKelley