Screenshotvergleich mit Ranorex

Problemstellung: Vergleich der Darstellung von UI Elementen mit Ranorex.
Da es immer wieder vorkommt dass UI Elemente nicht korrekt dargestellt werden hier ein kleiner Codeschnipsel, welcher das Beispiel meines Kollegen (Ranorex Pixelfarbe ermitteln) etwas erweitert.
Hier wird bei einer gegebenen Auflösung (ggf. parametrisieren) von 1280×1024 pixelweise ein Screenshot verglichen.
Bei Abweichung wird ein Warning in den Report ausgegeben.
Die Methode läßt sich in Ranorex auch für nicht – Entwickler einfach verwenden.
Als Parameter wir das UI Element und ein Merker, ob es sich um das erste Bitmap handelt, übergeben.

Im Beispiel wird Notepad verwendet und ein leeres Textfeld mit einem Beschiebenem (Text: „Hallo“) verglichen:
pic11478

Der Code versteht sich als Anregung und erhebt keinen Anspruch auf
Vollständigkeit.

public partial class Recording1
{
    private static Bitmap bmp1 = null;
    private static Bitmap bmp2 = null;

    ///

<summary>
    /// This method gets called right after the recording has been started.
    /// It can be used to execute recording specific initialization code.
    /// </summary>


    private void Init()
    {
        // Your recording specific initialization code goes here.
    }

    public static void saveBitmap(Adapter ui_control, bool first)
    {
        if (first)
        {
            bmp1 = Imaging.CaptureCompressedImage(ui_control);
        }
        else
        {
            bmp2 = Imaging.CaptureCompressedImage(ui_control);
        }


    }

    public static void Color()
    {
        for (int s = 0; s < 1280; s++)
        {
            for (int z = 0; z < 1024; z++)
            {
                Color cElementColor1 = bmp1.GetPixel(z, s);
                Color cElementColor2 = bmp2.GetPixel(z, s);
                if (cElementColor1 != cElementColor2)
                {
                    Report.Log(ReportLevel.Warn, "Bild weicht ab!" + z + " ---" + s);
                }
            }
        }
    }
}

Freundliche Grüße
Rainer Unger

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert