Controls mit Tricentis Vision AI steuern

Sie können die von Ihnen mit Vision AI aufgezeichneten Controls genauso steuern wie TBox-Controls.

Dieses Kapitel enthält Informationen zu folgenden Themen:

Sie können Vision AI verwenden, um Controls in mobilen Applikationen zu steuern, wenn die Mobile Engine 3.0 sie nicht unterstützt oder erkennt. Nähere Informationen finden Sie in diesem Artikel der Knowledge Base.

Zusätzliche Parameter für scrollbare Controls

Sie können diese Steuerungsparameter verwenden, um die Timeouts für lange Listen, Bäume oder Tabellen zu erhöhen. Beachten Sie, dass Sie möglicherweise auch die Synchronisations-Timeouts der Tosca TBox anpassen müssen.

Die folgende Tabelle listet die Steuerungsparameter für scrollbare Controls auf:

Steuerungsparameter

Beschreibung

Standardwert

ScrollSpeed

Legen Sie die Scroll-Geschwindigkeit von Vision AI fest. Erhöhen Sie den Standardwert, um das Scrollen zu beschleunigen (z. B. 2,0). Verringern Sie den Standardwert, um das Scrollen zu verlangsamen (z. B. 0,5).

1.0

ScrollTimeout

Legen Sie fest, wie lange Vision AI nach oben oder unten nach Controls suchen soll.

Geben Sie den Wert in Sekunden ein.

10

ScrollDownTimeout

Überschreiben Sie den ScrollTimeout zum Scrollen nach unten.

 

ScrollUpTimeout

Überschreiben Sie den ScrollTimeout zum Scrollen nach oben.

 

Zusätzliche Parameter für die Tabellensteuerung

Wenn Sie Tabellen automatisieren möchten, können Sie zusätzliche Parameter ändern, die angeben, wie Vision AI Tabelleninhalte erkennt. Für Informationen dazu, wie Sie diese Parameter im XScan bearbeiten können, siehe Kapitel "Parameter für die Tabellenerkennung und -steuerung ändern".

Method steuern

Der Parameter Method definiert die Art und Weise, wie Vision AI auf dem Bildschirm Tabellenzellen von Pixeln unterscheidet. Für diesen Parameter können Sie die folgenden Werte verwenden:

  • Gridlines - Vision AI sucht nach langen vertikalen und horizontalen Linien innerhalb der Tabellengrenzen. Diese Methode könnte den unteren Teil des Textes in einer Zeile als mögliche Linie erkennen, was dazu führt, dass eine zusätzliche leere Zeile erkannt wird. In diesem Fall können Sie den Parameter MergeEmpty verwenden, um die zusätzliche leere Zeile loszuwerden.

  • Words - Vision AI sucht nach Pixeln, die sich von ihren umgebenden Pixeln unterscheiden, aber keine Gitterlinien sind. Diese Methode verwendet die vertikalen und horizontalen Lücken zwischen Wörtern als Zellgrenzen.

  • CountrolBounds - Vision AI sucht nach den Grenzen des jeweiligen Controls und eines Textblocks. Diese Methode verwendet die vertikalen und horizontalen Lücken zwischen diesen Controls als Zellgrenzen.

  • Auto - Vision AI verwendet eine Kombination aus den Methoden Gridlines und Words.

ColumnThreshold und RowThreshold steuern

Die Parameter ColumnThreshold und RowThreshold steuern, wie empfindlich Vision AI bei der Auswahl einer Zeile oder Spalte ist. Die Werte für diese Parameter reichen von 0 bis 100. Sie geben den prozentualen Schwellenwert an, den Vision AI erkennen muss, um die Zeile oder Spalte zu steuern. Niedrigere Werte bedeuten, dass mehr Zeilen oder Spalten verwendet werden, während höhere Werte bedeuten, dass weniger Zeilen oder Spalten verwendet werden.

Der Standardwert Auto wählt den besten Wert basierend auf dem Method-Parameter aus:

  • Für die Gridlines-Methode ist dieser 30.

  • Für die Words-Methode ist dieser 15.

  • Für die ControlBounds-Methode ist dieser 1.

MergeEmpty steuern

Vision AI erkennt möglicherweise zusätzliche leere Zeilen oder Spalten. Dies geschieht häufig, wenn Sie die Words- oder ControlBounds-Methode verwenden.

Der Parameter MergeEmpty gibt an, wann diese leeren Zeilen und Spalten mit dem übrigen Inhalt der Tabelle zusammengeführt werden:

  • Setzen Sie diesen Parameter auf Yes, um das Zusammenführen einzuschalten, oder auf No, um es auszuschalten.

  • Setzen Sie diesen Parameter auf Auto, wenn Sie das Zusammenführen bei Verwendung der Gridlines-Methode deaktivieren möchten. Bei allen anderen Methoden wird das Zusammenführen eingeschaltet.

HeaderColumn und HeaderRow steuern

Diese beiden Parameter funktionieren genauso wie Standard-TBox-Tabellen. Sie können auswählen, welche Zeilen- und/oder Spaltennummer für Kopfzeilen verwendet wird.

Um diese Werte festzulegen, klicken Sie in der Vorschau Content Preview auf die Zellen.

HeadersContain steuern

Manchmal variiert die genaue Kopfzeilennummer je nach Erkennungsort. In diesem Fall können Sie sich nicht auf den Parameter HeaderRow verlassen. Setzen Sie stattdessen den HeadersContain-Parameter auf einen Textwert aus der Kopfzeile Ihrer Tabelle. Vision AI durchsucht die Tabelle nach einer Zeile, die diesen Textwert enthält, und verwendet sie als Kopfzeile.

DecisiveColumns steuern

Dieser Parameter funktioniert genauso wie Standard-TBox-Tabellen. Er gibt die Spalten für die Selektoren $lastContentRow und $firstEmptyRow an. Der Standardwert ist *, was bedeutet, dass alle Spalten verwendet werden.

IgnoreInvisibleTableContent steuern

Dieser Parameter hat keine Auswirkungen auf Tabellen in der Vision AI.

ColumnMinGap und RowMinGap steuern

Diese Parameter geben die minimale Anzahl von Pixeln zwischen Spalten und Zeilen an. Der Standardwert ist 0.

Erhöhen Sie die Werte dieser Parameter um kleine Werte, um die Anzahl der Spalten oder Zeilen zu reduzieren, die falsch aufgeteilt wurden.

Zusätzliche Parameter für die Eingabe

Nachdem Sie Ihre Controls mit Vision AI aufgezeichnet haben, können Sie Steuerungsparameter hinzufügen, die den Eingabemechanismus steuern. Diese Steuerungsparameter gelten nur für Controls mit der ControlType-Eigenschaft Input oder Dropdown.

Beachten Sie, dass Vision AI für spezielle Tastenkombinationen eine etwas andere Syntax verwendet. Um spezielle Tastenkombinationen zu senden, verwenden Sie in Ihren Testschritten den Befehl {VSKEYS} anstelle von {SENDKEYS}. Um weitere Informationen zur VSKEYS-Syntax zu erhalten, klicken Sie hier.

Steuerungsparameter für das Input-Control hinzufügen

Die folgende Tabelle zeigt die möglichen Steuerungsparameter für ein Control mit der Eigenschaft ControlType, die auf Input gesetzt ist. Wenn Sie diese Parameter nicht angeben, verhält sich der Eingabemechanismus gemäß dem Standardwert.

Steuerungsparameter

Beschreibung

Standardwert

KeyDelay

Legen Sie fest, wie lange Vision AI nach jedem Lösen bzw. Betätigen einer Taste warten soll.

Geben Sie den Wert in Millisekunden ein.

10

HoldDelay

Legen Sie fest, wie lange Vision AI die Taste gedrückt halten soll.

Geben Sie den Wert in Millisekunden ein.

0

SelectTextKeys

Geben Sie die Tastenfolge an, die Vision AI eingeben soll, bevor der Wert eingegeben wird, den Sie im Testschrittwert angegeben haben.

Vision AI ersetzt standardmäßig den vorhandenen Inhalt eines Eingabefelds durch einen neuen Wert, den Sie im Testschrittwert angegeben haben.

Stellen Sie sicher, dass Sie den Wert in doppelten Anführungszeichen eingeben, damit Tricentis Tosca diesen nicht als dynamischen Ausdruck erkennt.

"{Home-Ctrl-Home-Shift-End}"

DeleteTextKeys

Geben Sie die Tastenfolge an, die Vision AI auswählen soll, wenn der Testschrittwert leer ist.

Vision AI löscht standardmäßig den vorhandenen Inhalt eines Eingabefelds, wenn ein Testschrittwert leer ist.

Stellen Sie sicher, dass Sie den Wert in doppelten Anführungszeichen eingeben, damit Tricentis Tosca diesen nicht als dynamischen Ausdruck erkennt.

"{Delete}"

In diesem Beispiel möchten Sie den Inhalt eines Eingabefelds mit der Tastenfolge Strg und A auswählen. Dazu fügen Sie den Steuerungsparameter SelectTextKeys in den Properties dieses Controls hinzu und setzen seinen Wert auf "{Ctrl-A}".

Steuerungsparameter SelectTextKeys

Steuerungsparameter für das Dropdown-Control hinzufügen

Die folgende Tabelle zeigt die möglichen Steuerungsparameter für ein Control mit der Eigenschaft ControlType, die auf Dropdown gesetzt ist. Wenn Sie diese Parameter nicht angeben, verhält sich der Eingabemechanismus gemäß dem Standardwert.

Steuerungsparameter

Beschreibung

Standardwert

KeyDelay

Legen Sie fest, wie lange Vision AI nach jedem Lösen bzw. Betätigen einer Taste warten soll.

Geben Sie den Wert in Millisekunden ein.

10

HoldDelay

Legen Sie fest, wie lange Vision AI die Taste gedrückt halten soll.

Geben Sie den Wert in Millisekunden ein.

0

ConfirmItemKeys

Geben Sie die Tastenfolge an, die Vision AI auswählen soll, um ein Element zu bestätigen und das Aufklappmenü zu schließen.

Vision AI wählt standardmäßig Tabulator, um ein Element zu bestätigen und das Aufklappmenü zu schließen.

Stellen Sie sicher, dass Sie den Wert in doppelten Anführungszeichen eingeben, damit Tricentis Tosca diesen nicht als dynamischen Ausdruck erkennt.

"{Tab}"

In diesem Beispiel erfordert Ihre Applikation, dass Sie Enter statt Tabulator drücken, um ein Element aus einem Aufklappmenü auszuwählen. Um das Standardverhalten zu ändern, fügen Sie den Steuerungsparameter ConfirmItemKeys in den Properties dieses Controls hinzu und setzen seinen Wert auf "{Enter}".

Steuerungsparameter ConfirmItemKeys

Besonderer Wert <Foreground> für den Parameter Caption

Sie können den Parameter Caption Ihres Moduls bearbeiten, um das oberste Fenster im Vordergrund zu steuern. Auf diese Weise können Sie beispielsweise Pop-up-Fenster oder Fenster ohne Titel steuern, die sich im Vordergrund befinden.

Führen Sie hierzu die folgenden Schritte aus:

  1. Zeichnen Sie ein Fenster im Vordergrund auf, das Sie mit dem XScan steuern möchten.

  2. Öffnen Sie den Bereich Properties Ihres neuen Moduls.

  3. Ersetzen Sie den Wert des Parameters Caption durch <Foreground>.

    Wenn Sie dieses Modul in einem Testfall verwenden, steuert Vision AI das Fenster im Vordergrund.

Parameter Caption mit Wert <Foreground>

Die Fensteridentifizierung kann optional die Übergangsparameter ClassName und ProcessName verwenden. Diese Parameter werden ausgewählt, wenn das Fenster einen leeren Titel hat. Wenn Sie den Wert <Foreground> für den Parameter Caption verwenden, kombiniert Vision AI diese Werte, wodurch das vorderste Fenster ausgewählt wird, das mit dem angegebenen ClassName und/oder ProcessName übereinstimmt.

Einschränkungen bei der Tabellensteuerung mit Vision AI

Derzeit unterstützt Vision AI nicht die folgenden Optionen und Eigenschaften für die Tabellensteuerung:

  • Horizontales Tabellen-Scrollen innerhalb der Tabelle. Wenn Vision AI eine angegebene Zeile oder Zelle nicht findet, scrollt es durch die ganze Tabelle, allerdings nur vertikal. Horizontales Scrollen wird nicht unterstützt.

  • Definieren eingebetteter Controls in Zellen über die Option Create Embedded <Control-Typ> control im Kontextmenü. Wenn Sie ein eingebettetes Control verwenden möchten, zeichnen Sie es separat im XScan auf. Ziehen Sie dieses Control im Bereich Modules in das Modulattribut Cell.

  • Die vorrangige Spaltensteuerung unterstützt keine Zeilen-Labels. Dies bedeutet, dass Sie das Zeilen-Label nicht als Zellenname verwenden können, wenn Sie die sekundäre Steuerung unter einem Tabellen-Control verwenden. Wenn Sie beispielsweise eine Spalte und dann eine Zelle auswählen, werden nur numerische Indizes wie $1, $2, $last unterstützt.

  • Im Bereich Content Preview werden die zusammengeführten Zellen nicht angezeigt. Die Gitterlinien in zusammengeführten Zellen sind sichtbar.

Um diese Einschränkungen zu überwinden, können Sie die VisionScript-Statements direkt zwischen Testschritten in Tricentis Tosca einfügen. Verwenden Sie dazu das Modul Run VisionScript.

Parameter für die Steuerung von Bäumen

Wenn Sie Bäume steuern möchten, können Sie die Steuerungsparameter ändern, um festzulegen, wie sie gesteuert werden.

Die Standard-Steuerungsmethode ist die standardmäßige einzeilige Syntax, wobei die Namen der einzelnen Baumknoten durch -> getrennt sind. Beispiel: Level1->Level2->Level3.

Eine mehrzeilige Syntax wird ebenfalls unterstützt, aber Sie müssen Modulattribute für jede Ebene manuell erstellen. Stellen Sie auf dem Modulattribut die folgenden Werte für die folgenden Parameter ein:

  • BusinessType: VisionAIControl

  • SpecialIcon: TreeNode

  • BusinessAssociation: Descendants

  • Engine: Vision AI

  • ExplicitName: True

  • ControlType: Node

Die folgende Tabelle listet die Steuerungsparameter für Bäume auf:

Steuerungsparameter

Beschreibung

Standardwert

DepthMethod

Geben Sie an, wie verschiedene Ebenen in der Baumstruktur identifiziert werden. Text verwendet die linke Umrandung des Textes, Pixel verwendet das am weitesten links liegende Nicht-Hintergrund-Pixel (z. B. die linke Kante des Symbols oder Textes, je nachdem, was zuerst kommt). Einige Bäume haben unterschiedliche Einrückungen im Text, je nachdem, ob es ein Erweiterungssymbol gibt oder nicht.

Text

MinIndent

Geben Sie die Anzahl der Pixel an, die ein Baumknoten vom übergeordneten Knoten aus eingerückt sein muss, um als untergeordnet zu gelten.

4

ExpandMethod

Geben Sie an, wie ein Baumknoten erweitert werden soll. Mögliche Werte: Click, DoubleClick, IconClick. Kann auch von Tastenanschlägen in geschwungenen Klammern gefolgt sein, zum Beispiel {Right}. Beachten Sie, dass Sie geschwungene Klammern in Anführungszeichen setzen müssen, zum Beispiel "Click{Right}".

DoubleClick

SelectMethod

Geben Sie an, wie der letztendliche Baumknoten ausgewählt werden soll. Ähnlich wie ExpandMethod.

Click

Einschränkungen

  • Für die einzeilige Steuerung gelten Bäume als Listen mit erweiterbaren Knoten. Es wird nicht überprüft, ob jede Ebene strikt unter der vorherigen Ebene liegt. Dies ist auf aktuelle Einschränkungen bei der Erkennung von Bildlauf- und OCR-Grenzen zurückzuführen.

  • Bei der mehrzeiligen Steuerung müssen alle Knoten gleichzeitig auf dem Bildschirm sichtbar sein. Wenn ein übergeordneter Knoten während der Steuerung nicht angezeigt wird, schlägt die Steuerung fehl.

Parameter für die Steuerung von Menüs

Sie können Menüs mit der einzeiligen Syntax steuern, zum Beispiel File->New->Mail Message.

Die folgende Tabelle listet die Steuerungsparameter für Menüs auf:

Steuerungsparameter

Beschreibung

Standardwert

FirstClick

Geben Sie an, ob die Maus auf das erste Element klicken oder darüber fahren soll.

True

IntermediateClick

Geben Sie an, ob die Maus auf die nachfolgenden Elemente klicken oder darüber fahren soll. Die einzige Ausnahme ist das letzte Element, da dieses immer angeklickt wird.

True

SeparatorTreshold

Geben Sie die Höhe des Controls in Prozent an.

Wird eine vertikale Linie mit einer Länge erkannt, die diese Schwelle überschreitet, z. B. mehr als die halbe Höhe der Menüleiste, so gilt dies als Bruch in den Menüobjekten. Kein Menüobjekt erstreckt sich über das Trennzeichen hinaus. Dieser Steuerungsparameter ist nützlich, wenn Wörter, die nahe beieinander liegen, zu einem Menüobjekt zusammengeführt werden, dazwischen aber noch eine vertikale Linie steht.

50

Parameter für die Steuerung von TabBars

Um eine TabBar zu steuern, verwenden Sie den Namen der Registerkarte, auf die Sie klicken möchten. Eine Einschränkung ist, dass die aktuell ausgewählte Registerkarte nicht identifiziert wird und nicht überprüft werden kann.

Die folgende Tabelle listet die Steuerungsparameter für TabBars auf:

Steuerungsparameter

Beschreibung

Standardwert

SeparatorTreshold

Geben Sie die Höhe des Controls in Prozent an.

Wird eine vertikale Linie mit einer Länge erkannt, die diese Schwelle überschreitet, z. B. mehr als die halbe Höhe der TabBar, so gilt dies als Bruch in den Registerkarten. Keine Registerkarte erstreckt sich über das Trennzeichen hinaus. Dieser Steuerungsparameter ist nützlich, wenn Wörter, die nahe beieinander liegen, zu einem Objekt zusammengeführt werden, dazwischen aber noch eine vertikale Linie steht.

50

Parameter für die Steuerung von Symbolleisten

Um eine Symbolleiste zu steuern, geben Sie den Text des Elements an, auf das Sie klicken möchten.

Die folgende Tabelle listet die Steuerungsparameter für Symbolleisten auf:

Steuerungsparameter

Beschreibung

Standardwert

SeparatorTreshold

Geben Sie die Höhe des Controls in Prozent an.

Wird eine vertikale Linie mit einer Länge erkannt, die diese Schwelle überschreitet, z. B. mehr als die halbe Höhe der Symbolleiste, so gilt dies als Bruch in den Symbolleistenobjekten. Kein Objekt erstreckt sich über das Trennzeichen hinaus. Dieser Steuerungsparameter ist nützlich, wenn Wörter, die nahe beieinander liegen, zu einem Objekt zusammengeführt werden, dazwischen aber noch eine vertikale Linie steht.

50