Grafische Elemente in GUI-Technologien
Deutsche Version | English Version
Inhaltsverzeichnis
Einleitung[Bearbeiten]
Die GUI-Technologien liefern üblicherweise Informationen über vorhandene Elemente in der jeweiligen Anwendung. Über einen Locator (üblicherweise ein XPath) kann dann an einem Baustein angegeben werden, für welches Element eine bestimmte Aktion ausgeführt werden soll. In manchen Fällen kann es aber schwierig bis unmöglich sein, solch einen geeigneten Pfad anzugeben. Entweder weil die Struktur nicht statisch ist, es keine geeigneten Eigenschaften gibt das Element zu identifizieren, oder weil ein Element über die Technologie gar nicht sichtbar ist, sondern nur sein umgebendes Element.
Über die Verwendung eines Drehbuchs (Screenplay) ist es möglich, Elemente zu definieren, die über den Screenshot gefunden werden. Das Prinzip ist das gleiche wie bei der Automatisierung auf dem lokalen Bildschirm oder über einen VNC-Server, kann aber parallel mit der normalen Adressierung verwendet werden.
Bisher unterstützen folgende Technologien ein zusätzliches Screenplay: Web Test (Selenium), Mobile Testing (Appium), WindowsAutomation 2 und Java.
Drehbuch definieren[Bearbeiten]
Am einfachsten lassen sich Drehbücher im GUI-Browser anlegen. Bauen Sie zunächst die Verbindung auf, die Sie verwenden wollen. Im Kontextmenü der Applikation gibt es den Eintrag Drehbuch und darunter verschiedenen Option, unter anderem, ein neues Drehbuch anzulegen. Die Elemente werden im Drehbuch in Szenen unterteilt. Diese können zur Strukturierung verwendet werden, es ist aber auch möglich, nur eine Szene zu verwenden. Das Drehbuch wird als Anhang ins aktuelle Projekt gespeichert, ebenso alle Bilddateien, die zur Definition der Elemente verwendet werden.
Drehbuch verwenden[Bearbeiten]
Wenn ein Drehbuch in einer Verbindung geladen ist, kann es auch verwendet werden. Für eine Applikation im GUI-Browser haben Sie im Kontextmenü neben dem Anlegen eines neuen Drehbuchs auch die Möglichkeit, ein bereits existierendes Drehbuch aus einem Anhang oder einer Datei zu laden.
Um ein Drehbuch in einem Test zu laden gibt es entsprechende Bausteine. Manchen Technologie-Bibliotheken beinhalten einen solchen Baustein, in der Common GUI Library, die in jedem Fall verwendet werden kann, heißt er zum Beispiel [UI] Set Screenplay. Ziehen Sie dafür das Attachment des Drehbuchs in Ihren Baustein und setzen Sie das Datenformat am Ausgang auf Inhalt als String, um den Pin mit dem Screenplay-Baustein verbinden zu können.
Die im Drehbuch definierten Elemente können mit den Bausteinen der Technologie-Bibliotheken oder der Common GUI Library verwendet werden, möglicherweise funktionieren aber nicht alle Aktionen. Lesen Sie im Abschnitt Schreibweise weiter unten in welcher Form die Elemente an den Eingangspins angegeben werden können.
Elemente[Bearbeiten]
Es gibt verschiedene Arten von Elementen oder Playern, die im Drehbuch definiert werden können. Im GUI-Browser können Sie ein neues Element anlegen, indem Sie das Drehbuch oder eine Szene auswählen und im Kontextmenü Neues Element definieren ("Player" in der Szene) auswählen und darunter den Typ des Elements.
Grafische Elemente[Bearbeiten]
Grafische Elemente sind alle Elemente, die über den Screenshot erkannt werden. Die Elemente, die so gefunden werden sind unabhängig von der Technologie. Mit ihnen können nur grundlegende Aktionen ausgeführt werden, wie Klicken oder den Text auslesen (über OCR). Auch wenn diese Aktionen trotzdem über die jeweilige Technologie ausgeführt werden, sind mit diesen Elementen keine Aktionen möglich, die ein echtes Technologie-Element benötigen (z.B. Attribut-Werte auslesen). Es gibt verschiedene Möglichkeiten, ein solches Element zu definieren.
Position[Bearbeiten]
Die einfachste Möglichkeit ist es, einfach eine Position anzugeben. Hierfür muss noch nicht einmal der Screenshot durchsucht werden, trotzdem handelt es sich hierbei um ein grafisches Element, da die möglichen Aktionen mit einem solchen Element dieselben sind.
Bild suchen[Bearbeiten]
Elemente können mit einem oder mehreren Bilder definiert werden, die dann im aktuellen Screenshot gesucht werden. Hiervon gibt es verschiedene Unterkategorien. Das Element kann direkt durch das Bild definiert sein oder eine Position relativ zum Bild haben. Es ist außerdem möglich, einen Bereich zu definieren, der von zwei Bildern aufgespannt wird.
Auch wenn eine Anwendung dasselbe Element anzeigt, kann es sein, dass es im Screenshot nicht jedes Mal Pixel für Pixel identisch auftaucht. Um Ungenauigkeiten durch diesen Effekt auszugleichen gibt es verschiedene Parameter, die für die Suche gesetzt werden können. Im Kontextmenü eines Elements können Sie einen Editor zum Ändern dieser Parameter öffnen (Locator (Image Search) Parameters...). Hier können Sie zum Beispiel festlegen, wie stark das Referenzbild vom Original abweichen darf oder nur einen Graustufen- der Schwarz-Weiß-Vergleich machen lassen.
Text suchen[Bearbeiten]
Wenn die OCR-Unterstützung in expecco konfiguriert ist, kann auch nach Text innerhalb des Bildes gesucht werden. Hier ist zu beachten, dass der Erfolg natürlich vom OCR-Ergebnis abhängt. Dabei ist hoher Kontrast in der Regel von Vorteil, dunkle Schrift auf hellem Grund wird meist besser erkannt als umgekehrt. Icons oder andere grafische können als Zeichen erkannt werden, was zu Problemen führen kann, wenn ein Wort direkt daneben gesucht wird.
![]() |
Bereich unter Text | Geben Sie einen Text an, nach dem im Screenshot gesucht werden soll. Das Element befindet sich dann in dem Bereich, in dem dieser Text gefunden wird. |
XPath-Elemente[Bearbeiten]
Im Drehbuch können auch Elemente mit XPath definiert werden. Dadurch kann einem Pfad quasi ein Name zugewiesen werden. Dies trägt zum einen zur besseren Lesbarkeit des Tests bei, zum anderen können Pfade so einfacher ausgetauscht werden. Elemente, die so gefunden werden, sind genauso echte Technologie-Elemente wie wenn man den Pfad direkt am Baustein verwendet, das heißt mit ihnen können alle Aktionen ausgeführt werden, die für die Technologie möglich sind.
Relative Elemente[Bearbeiten]
Alle oben genannten Drehbuch-Elemente können auch relativ zu einem Technologie-Element angegeben werden. In diesem Fall wird zuerst das Technologie-Element gesucht und dann mit dessen Screenshot weiter gearbeitet. Ein Element wird automatisch relativ angelegt, wenn man bei der Definition ein Technologie-Element ausgewählt hat. Relative Elemente werden im Baum gelb eingefärbt angezeigt.
Alternativ zu dieser Methode kann man aber auch einfach Pfade kombinieren, siehe Abschnitt Schreibweise.
Schreibweise[Bearbeiten]
Um ein Element aus dem Drehbuch an einem Baustein zu verwenden, wird das @-Zeichen verwendet, um eine Element-ID zu kennzeichnen. Zum Beispiel @OkButton. Bei der Verwendung eines Screenplays mit VNC oder auf dem lokalen Bildschirm gibt es daneben noch andere Schreibweisen, die bei den anderen GUI-Technologien nicht zulässig sind, da man hier unterscheiden können muss, ob es sich um einen XPath oder um ein Screenplay-Element handelt. Eine Element-ID darf die Zeichen '@', '$' und '/' nicht enthalten.
Es ist auch möglich, mehrere Elemente in einem Pfad zu kombinieren. Dabei wird der Pfad von links nach rechts abgearbeitet und jeweils nur innerhalb des definierten Bereichs weitergesucht. Die einzelnen Teile werden dabei durch "/" getrennt. Zum Beispiel @linkeSeite/@OkButton. Es dürfen XPath der Technologie mit den Element-IDs kombiniert werden, allerdings ist hierbei zu beachten, dass keine Element-ID für ein grafisches Element links von einem XPath stehen kann.