XBrowser Controls steuern
In diesem Kapitel werden spezielle Anforderungen an die Steuerung mit der XBrowser Engine 3.0 behandelt. Allgemeine Informationen zu Steuerungsmöglichkeiten für einzelne Controls finden Sie hier: siehe Kapitel "Control-Typen".
Konfigurationsparameter DisableGetElementById
Dieser Parameter stellt sicher, dass Controls mit gleicher ID gefunden werden können. Der Parameter wird automatisch beim Aufzeichnen eines Moduls angelegt, wenn zwei oder mehr Controls des Testobjektes dieselbe ID besitzen. Der Parameter wird bei jedem Modulattribut angelegt, mit Ausnahme des ersten Modulattributs. Er wird für jedes Modulattribut mit Ausnahme des ersten erstellt. Der Standardwert ist True.
HTML-Elemente mit XPath identifizieren
Sie können HTML-Elemente mithilfe eines XPath-Ausdrucks und des Identifikationsparameters XPath identifizieren. Der Parameter ist im XScan-Fenster unter Identify by Properties im Rasterabschnitt Transition verfügbar.
Zur Verwendung von XPath für die Identifikation, aktivieren Sie die Einstellung Enable XPath Identification unter Settings->Tbox->Engines->XBrowser.
Weitere Informationen zum Thema XPath finden Sie hier.
Den XPath-Parameter zur Identifizierung im Tosca XScan verwenden
Steuerungsparameter FireEvent
Sie können jedem in diesem Kapitel erwähnten Control-Typen den Steuerungsparameter FireEvent hinzufügen. Dazu müssen Sie den Event-Handler im Feld Value ohne das Präfix on angeben. Geben Sie beispielsweise anstelle von onclick den Wert click an. Beachten Sie, dass alle Bezeichnungen zwischen Groß- und Kleinschreibung unterscheiden.
Das Auslösen eines Ereignisses erfolgt immer nach einer Aktion Input mit der Standard-Operation des fachlichen Controls.
Um mehrere Events hinzuzufügen, trennen Sie sie durch Semikolons, z. B. change;blur.
Die Verfügbarkeit der Events ist abhängig von der Implementierung des Controls. Nähere Informationen zu HTML-Ereignissen finden Sie auf der folgenden Seite: HTML Event Attributes.
Auslösen des FireEvent change nach dem Auswählen eines ComboBox-Eintrages
Steuerungsparameter FireEventMethodIE
Für Applikationen, die mit dem Internet Explorer (nicht mehr unterstützt) geöffnet werden und die Microsoft-spezifische Methode AttachEvent verwenden, müssen Sie zusätzlich zum Parameter FireEvent den Steuerungsparameter FireEventMethodIE angeben.
Für den Parameter FireEventMethodIE können Sie folgende Werte angeben:
Wert |
Beschreibung |
---|---|
None |
Wenn Sie keinen Wert angeben, wird das DispatchEvent ausgelöst. Wenn kein DispatchEvent verfügbar ist, wird FireEvent ausgelöst. |
FireEvent |
Löst FireEvents aus. |
DispatchEvent |
Löst DispatchEvent aus. |
FireEvent+DispatchEvent |
Löst FireEvent aus, gefolgt von DispatchEvent. |
DispatchEvent+FireEvent |
Löst DispatchEvent aus, gefolgt von FireEvent. |
Steuerungsparameter FireEventMethodIE
Parameter FocusOnActivate steuern
Sie können den Steuerungsparameter FocusOnActivate auf der Modulebene für das Steuern von Microsoft Edge Version 44 oder älter einstellen. Der Parameter funktioniert nicht, wenn Sie Microsoft Edge Version 79 oder höher verwenden. Verwenden Sie diesen Parameter wenn die aktuell geladene Seite in Microsoft Edge fokussiert werden soll, nachdem das Browserfenster aktiviert wird. Wenn beispielsweise ein Control in der Browser-Symbolleiste fokussiert ist, können Sie mit FocusOnActivate verhindern, dass die benutzersimulierte Tastatur ausfällt.
Alternativ können Sie FocusOnActivate auch als Testkonfigurationsparameter definieren.
Steuerungsparameter SyncStateInteractive
Standardmäßig wird die XBrowser Engine 3.0 auf einer Webseite nur ausgeführt, wenn ihr Ladestatus (document.readyState) abgeschlossen ist. Sie können angeben, dass die XBrowser Engine 3.0 auch auf einer Webseite ausgeführt werden soll, deren Ladestatus interaktiv ist. Geben Sie dazu den Steuerungsparameter SyncStateInteractive an und setzen Sie seinen Wert auf false.
Beachten Sie, dass der Steuerungsparameter SyncStateInteractive nur mit dem Internet Explorer (nicht mehr unterstützt) funktioniert.
Alternativ können Sie SyncStateInteractive als Testkonfigurationsparameter definieren.
Steuerungsparameter IgnoreAriaControls
Geben Sie an, ob Tosca alle oder bestimmte ARIA-Elemente während der Ausführung ignorieren soll. Wir empfehlen Ihnen, diese Einstellung auf True zu setzen, wenn Sie Probleme mit der Kompatibilität und den XBrowser-Customisierungen haben.
Tosca kann diesen Steuerungsparameter automatisch mit der Einstellung IgnoreAriaControls zu neuen Modulen hinzufügen.
Beachten Sie, dass bei allen Module, die vor Tricentis Tosca 16.0 erstellt wurden, dieser Steuerungsparameter auf True gesetzt ist. Dadurch werden Kompatibilitätsprobleme direkt nach einem Versionswechsel vermieden.
Alternativ können Sie IgnoreAriaControls als Testkonfigurationsparameter definieren.
Steuerungsparameter EnableSlotContentHandling
Geben Sie an, ob die Controls als untergeordnete Elemente ihres zugewiesenen Slot-Elements angezeigt werden sollen.
Tosca fügt diesen Steuerungsparameter automatisch zu neuen Modulen hinzu und setzt ihn auf True oder False, je nach Konfiguration der Einstellung Enable slot content handling.
Beachten Sie, dass in Modulen, die in Tosca-Versionen erstellt wurden, die älter als 2024.1 sind, der Steuerungsparameter nicht sichtbar ist, was bedeutet, dass er auf True gesetzt ist. Wenn Sie ihn ändern und die Controls so anzeigen möchten, wie sie sich in der DOM-Struktur befinden, fügen Sie den Steuerungsparameter EnableSlotContentHandling manuell hinzu und setzen Sie ihn auf False.
Fachliche Eigenschaft IsSteerable
Die technische Eigenschaft IsSteerable prüft, ob das Control steuerbar ist, wenn in den einzelnen Controls nichts anderes angegeben ist.
Technisch gesehen wird überprüft, ob die Eigenschaft CurrentStyle.Display einen anderen Wert als none und die Eigenschaft CurrentStyle.Visibility einen anderen Wert als hidden gesetzt hat.
HTML-Elemente mit CSS-Style-Eigenschaften identifizieren
Sie können HTML-Elemente anhand von CSS-Style-Eigenschaften identifizieren. Style-Eigenschaften beginnen mit style_.
Um die Style-Eigenschaften eines Controls zu laden, wählen Sie das Control im Tosca XScan aus, klicken Sie auf die Schaltfläche More und wählen Sie Load all.
Control anhand von Style-Eigenschaften identifizieren
Sie können auch die Überprüfung von CSS-Style-Eigenschaften, WaitOn und Buffern verwenden.
Eingabe-Controls mit speziell formatierten Daten steuern
Um einige HTML-Elemente mit input-Tag zu steuern, benötigen Sie speziell formatierte Daten. Das erwartete Format ist unabhängig von den Datenformaten, die Sie unter Settings definieren.
Die folgende Tabelle listet die HTML-Elemente mit input-Tag auf, für die Sie speziell formatierte Daten benötigen.
Wert des Attributs type |
Datentyp |
Erwartetes Format* |
Beispiel |
---|---|---|---|
date |
Zeichenfolge |
yyyy-MM-dd |
2012-03-20 |
time |
Zeichenfolge |
HH:mm oder HH:mm:ss oder HH:mm:ss.SSS |
20:15 oder 20:15:03 |
datetime-local |
Zeichenfolge |
yyyy-MM-ddTHH:mm |
2012-03-20T20:15 |
month |
Zeichenfolge |
yyyy-MM |
2012-03 |
week |
Zeichenfolge |
yyyy-Www |
2013-W04 |
color |
Zeichenfolge |
#<hexadezimaler Farbcode> |
#45AE3B |
range |
Zeichenfolge |
Beliebige Zahl. Verwenden Sie ein Dezimaltrennzeichen, das mit der Lokalisierung Ihres Rechners übereinstimmt. |
3 oder 3,14 oder 31,4E-1 |
* Zur Angabe von Datum und Uhrzeit verwendet diese Spalte die Standardnotation des Tosca Commander.
Wenn Sie zeitbezogene Controls (date, time, datetime-local, month oder week) mit einem leeren Wert steuern, löscht der Tosca Commander den Wert des HTML-Elements.
Ausgeblendete Eingabefelder aufzeichnen
Sie können ein input-Element aufzeichnen und überprüfen, bei dem das Attribut type auf hidden eingestellt ist. Stellen Sie dazu sicher, dass die Einstellung Settings->TBox->Engines->Ignore invisible HTML elements auf False gesetzt ist. Sie können den Inhalt von ausgeblendeten Eingabeelementen nicht ändern.
Technische Klick-Operationen ohne Verwendung der Maus
Mit dem Testschrittwert {CLICK} können Sie auf jedem HTML-Control Linksklick-Operationen ausführen. Dadurch wird das System angewiesen, eine tatsächliche Linksklick-Operation mit der Maus durchzuführen.
Sie können das System anweisen, technische Linksklick-Operationen ohne Verwendung der Maus durchzuführen. Dies ist stabiler als {CLICK}, verbessert die Testleistung und ermöglicht es Ihnen, Klick-Operationen durchzuführen, selbst wenn der Rechner gesperrt ist.
Sie können technische Linksklick-Operationen auf eine der folgenden Arten durchführen:
-
Führen Sie technische Linksklick-Operationen auf Schaltflächen, RadioButtons und Container mit dem Testschrittwert X aus. Dieser weist das System an, zu überprüfen, ob das Control aktiviert ist, und einen Linksklick ohne Verwendung der Maus auszuführen.
-
Führen Sie technische Linksklick-Operationen auf jedem HTML-Control mit dem Testschrittwert {Invoke[Click]} aus. Dieser weist das System an, einen Linksklick ohne Verwendung der Maus auszuführen, aber er überprüft nicht, ob das Control aktiviert ist.
Technische Eigenschaft (Technical Property)
In der folgenden Tabelle sind alle technischen Eigenschaften der XBrowser Engine angeführt. In der Spalte Control-Typ ist angeführt, für welche Control-Typen die Eigenschaft zur Verfügung steht. Sie können diese Eigenschaften in Testschrittwerten in der Spalte Value verwenden.
Name der Eigenschaft |
Datentyp |
Control-Typ |
---|---|---|
ClassName |
Zeichenfolge |
Alle Html Elemente |
Zeichenfolge |
Alle Html Elemente |
|
InnerHtml |
Zeichenfolge |
Alle Html Elemente |
InnerText |
Zeichenfolge |
Alle Html Elemente |
OuterHtml |
Zeichenfolge |
Alle Html Elemente |
OuterText |
Zeichenfolge |
Alle Html Elemente |
Tag |
Zeichenfolge |
Alle Html Elemente |
Titel |
Zeichenfolge |
Alle Html Elemente |
Href |
Zeichenfolge |
Anchor Element |
Disabled |
Boolean |
Button Element |
Wert |
Zeichenfolge |
Button Element |
ColSpan |
Numeric |
Table Cell (TH, TD) |
RowSpan |
Numeric |
Table Cell (TH, TD) |
Titel |
Zeichenfolge |
Html Document |
Url |
Zeichenfolge |
Html Document |
ReadyState |
Zeichenfolge |
Html Document |
Src |
Zeichenfolge |
(I)Frame Element |
Bezeichnung |
Zeichenfolge |
(I)Frame Element |
Src |
Zeichenfolge |
Image (Img) Element |
Alt |
Zeichenfolge |
Image (Img) Element |
Checked |
Boolean |
Alle Input Elemente |
Disabled |
Boolean |
Alle Input Elemente |
Bezeichnung |
Zeichenfolge |
Alle Input Elemente |
Type |
Zeichenfolge |
Alle Input Elemente |
Wert |
Zeichenfolge |
Alle Input Elemente |
ReadOnly |
Boolean |
Alle Input Elemente |
Selected |
Boolean |
ListItem (Option Element) |
Wert |
Zeichenfolge |
ListItem (Option Element) |
Multiple |
Boolean |
ComboBox, ListBox (Select Element) |
Bezeichnung |
Zeichenfolge |
ComboBox, ListBox (Select Element) |
Disabled |
Boolean |
ComboBox, ListBox (Select Element) |
SelectedIndex |
Numeric |
ComboBox, ListBox (Select Element) |
Size |
Numeric |
ComboBox, ListBox (Select Element) |
ReadOnly |
Boolean |
Textarea Element |
Disabled |
Boolean |
Textarea Element |
Wert |
Zeichenfolge |
Textarea Element |
Bezeichnung |
Zeichenfolge |
Textarea Element |
Cols |
Numeric |
Textarea Element |
RowSpan |
Numeric |
Textarea Element |
DefaultValue |
Zeichenfolge |
Textarea Element |
Benutzerdefinierte Eigenschaften
Benutzerdefinierte Eigenschaften können nach dem Aufzeichnen mit XScan im Fenster Properties geladen werden. Der Name der Eigenschaft in Tosca TBox setzt sich aus dem ursprünglichen Namen der benutzerdefinierten Eigenschaft und dem Präfix attributes_ zusammen. Zum Beispiel attributes_<Name>.
Sie können benutzerdefinierte Eigenschaften, die aus dem XScan-Fenster geladen werden, für Überprüfungsvorgänge in der Spalte Value von Testschrittwerten verwenden.
Spezifische Control-Typen der XBrowser Engine
Die folgenden Control-Typen sind Html-spezifisch. Das Standardverhalten ist relevant, wenn keine Eigenschaft in der Spalte Wert eingetragen ist.
Symbol |
Control-Typ |
Fachliche Eigenschaft |
Standardverhalten |
---|---|---|---|
|
Titel |
Eingabeoperation: kein Standardverhalten Lesende Operation: |
|
|
None |
None |
CheckBox
Das Control CheckBox wird identifiziert, wenn der Tag INPUT vorhanden ist und das Attribut Type den Wert checkbox besitzt.
Technische Eigenschaft (Technical Property)
Fachliche Eigenschaft |
Beschreibung |
---|---|
Label |
Gibt die technische Eigenschaft InnerText oder Value zurück. |
Selected |
Schreibend: Lesend: |
IsSteerable |
Führt die standardmäßige Überprüfung durch. Zusätzlich wird überprüft, ob für das HtmlElement die technischen Eigenschaften Disabled und ReadOnly den Wert false besitzen. |
Beispiel
<input type="checkbox" id="checkBox1" value="checkBox1Value" onclick="javascript:testControlClick(event, this, 'onclick-Event on type=checkbox & id=checkBox1'>
ComboBox
Das Control ComboBox wird identifiziert, wenn der Tag SELECT vorhanden ist und das Attribut Multiple den Wert false besitzt. Das Attribut Size darf nicht größer als 1 sein.
Technische Eigenschaft (Technical Property)
Fachliche Eigenschaft |
Beschreibung |
---|---|
IsSteerable |
Gibt die technische Eigenschaft Disabled negiert zurück. |
Beispiel
<select name="select" id="select1" size="1" onchange="javascript:testControlClick(event, this, 'onchange-Event on type=select & id=select1');">
<option id="c0">Alpha</option>
<option id="c1">Bravo</option>
<option id="c2">Charlie</option>
<option id="c3">Delta</option>
<option id="c4">Echo</option>
</select>
Container
Das Control Container wird identifiziert, wenn einer der folgenden Tags vorhanden ist:
Tag |
---|
DIV |
SPAN |
FIELDSET |
Beispiel
<div />
GenericGUI
Das Control GenericGUI repräsentiert fachlich nicht erkannte Controls. Das Control GenericGUI wird identifiziert, wenn einer der folgenden Tags vorhanden ist:
Tag |
Tag |
Tag |
---|---|---|
A |
FRAME |
Q |
ABBR |
H1 |
RP |
ADDRESS |
H2 |
RT |
AREA |
H3 |
RUBY |
ARTICLE |
H4 |
S |
ASIDE |
H5 |
SAMP |
AUDIO |
H6 |
SCRIPT |
B |
HEAD |
SUCHEN |
BASE |
HEADER |
SECTION |
BDI |
HGROUP |
SELECT |
BDO |
HTML |
SMALL |
BLOCKQUOTE |
HR |
SOURCE |
BODY |
I |
SPAN |
BR |
IFRAME |
STRONG |
BUTTON |
IMAGE |
STYLE |
CANVAS |
INPUT |
SUB |
CAPTION |
INS |
ZUSAMMENFASSUNG |
CENTER |
KBD |
SUP |
CITE |
KEYGEN |
SVG |
CODE |
LABEL |
TABELLE |
COL |
LEGEND |
TBODY |
COLGROUP |
LI |
TD |
COMMAND |
LINK |
TEL |
DATA |
MAP |
TEXT |
DATALIST |
MARK |
TEXTAREA |
DD |
MATH |
TFOOT |
ENTF |
MENU |
TH |
DETAILS |
META |
THEAD |
DFN |
METER |
TIME |
DIV |
NAV |
TITLE |
DL |
NOSCRIPT |
TR |
DT |
OBJECT |
TRACK |
EM |
OL |
U |
|
OPTION |
UL |
EMBED |
OUTPUT |
URL |
FIELDSET |
P |
VAR |
FIGCAPTION |
PARAM |
VIDEO |
FIGURE |
PASSWORT |
WBR |
FOOTER |
PRE |
|
FORM |
PROGRESS |
|
HtmlDocument
Das Control HtmlDocument beschreibt ein HTML-Dokument, das sich innerhalb des Controls HtmlFrames befindet.
Technische Eigenschaft (Technical Property)
Fachliche Eigenschaft |
Beschreibung |
---|---|
Titel |
Gibt die technische Eigenschaft Title zurück. |
HtmlFrame
Das Control HtmlFrame kann Controls vom Typ HtmlDocument als Kinder besitzen. Das Control HtmlFrame wird identifiziert, wenn eines der folgenden Tags vorhanden ist:
Tag |
---|
FRAME |
IFRAME |
Beachten Sie bei der Verwendung von HtmlFrames-Controls, dass diese zu Kontextänderungen führen.
Beispiel
<frame name="normal" src="abc.html"/>
<iframe name="inner" src="abc.html"/>
![]() |
Wenn Sie Chrome als Browser verwenden, können Sie den folgenden Parameter angeben, damit Cookies für lokale Webseiten gespeichert werden: --enable-file-cookies Bei Chrome 34 oder einer älteren Version, kann es zu Problemen kommen, wenn Frames verwendet werden, die eine andere Seite referenzieren. Dieses Problem kann behoben werden, indem Chrome mit dem folgenden Start-Parameter gestartet wird: --disable-web-security |
Image
Das Control Image wird identifiziert, wenn der Tag IMG vorhanden ist.
Technische Eigenschaft (Technical Property)
Fachliche Eigenschaft |
Beschreibung |
---|---|
Picture |
Gibt den Pfad zu dem entsprechenden Bild an (technische Eigenschaft src). |
Beispiel
<img alt="ABC" src="abc.png"/>
Number
Das Control Number wird identifiziert, wenn der Tag INPUT vorhanden ist und das Attribut Type den Wert number besitzt.
Beispiel
<input type="number" name="quantity" min="1" max="5">
PushButton
Das Control PushButton wird identifiziert, wenn einer der folgenden Tags vorhanden ist:
Tag |
---|
BUTTON |
INPUT |
*Vorausgesetzt, dass das Attribut Type den Wert submit, reset, button oder image hat.
Technische Eigenschaft (Technical Property)
Fachliche Eigenschaft |
Beschreibung |
---|---|
Label |
Gibt die technische Eigenschaft InnerText (bei BUTTON) oder Value (bei INPUT) zurück. |
Fachliche Aktion Push
Die fachliche Aktion Push führt einen DOM-Klick aus und führt dann die angegebenen FireEvents aus.
Beispiel
<button id="button1" onclick="javascript:testControlClick(event, this, 'clicked on element=button');">Button</button>
ShadowDOM
ShadowDOMs werden wie HtmlFrames gesteuert und im offenen und geschlossenen Modus in Google Chrome, Microsoft Edge Chromium und Mozilla Firefox unterstützt. Wenn Sie auf einer Webseite die ShadowDomUnlocker-Einspeisung deaktiviert haben, werden ShadowDOMs nur im offenen Modus unterstützt.
Table
Das Control Table wird identifiziert, wenn das Tag TABLE vorhanden ist.
Steuerungsparameter HeaderTable
Standardmäßig haben Tabellen die Steuerungsparameter HeaderRow und HeaderColumn. Sie können diese Steuerungsparameter jedoch außer Kraft setzen, um eine Tabelle mit einer Kopfzeile oder -spalte aus einer anderen Tabelle anzupassen. Um eine Kopfzeile anzugeben, die zu einer anderen Tabelle gehört, die wir als die Kopfzeilentabelle bezeichnen, führen Sie diese Schritte aus:
-
Erstellen Sie ein Modul, indem Sie sowohl die Kopfzeilentabelle als auch die Tabelle aufzeichnen, der Sie die Kopfzeile hinzufügen möchten, wobei wir letztere als Zieltabelle bezeichnen.
-
Gehen Sie zur Zieltabelle und fügen Sie einen Steuerungsparameter namens HeaderTable hinzu.
-
Fügen Sie im Feld Value der HeaderTable die UniqueId der Kopfzeilentabelle ein.
-
Löschen Sie diese Steuerungsparameter aus Ihrer Zieltabelle: HeaderRow, HeaderColumn, RowCount, ColumnCount, ColumnNumber, RowNumber, RawColumnNumber oder RawRowNumber.
Beachten Sie außerdem Folgendes:
-
Die Kopfzeilentabelle in demselben Testschritt muss die Aktion Select verwenden.
-
Das Importieren von Modulen generiert eine andere UniqueId. Dies bedeutet, dass Sie beim Importieren von Modulen den Steuerungsparameter HeaderTable entsprechend anpassen müssen.
-
Die Kopfzeile oder -spalte geht in den Index über, der ihr in der Kopfzeilentabelle zugewiesen wurde. Wenn beispielsweise die HeaderRow der Kopfzeilentabelle 2 ist, erscheint die Kopfzeile als 2. Zeile in der Zieltabelle.
Beachten Sie, dass, wenn der Index die Anzahl der Zeilen oder Spalten in der Zieltabelle überschreitet, die Kopfzeile als letzte Zeile oder Spalte angezeigt wird.
![]() |
Nehmen wir an, Sie haben diese Tabellen in Ihrem Testschritt:
Beispiel für Kopfzeilen- und Zieltabellen Sie fügen den Steuerungsparameter HeaderTable mit dem Wert 3a13b42d-24a3-c69d-ab22-4d1f5d196446 zu Ihrer Zieltabelle hinzu, um die Kopfzeilen aus der Kopfzeilentabelle zu verwenden.
Steuerungsparameter der Zieltabelle
Steuerungsparameter der Kopfzeilentabelle Da die HeaderRow der Kopfzeilentabelle 2 ist, erscheint die zweite Zeile (X) aus der Kopfzeilentabelle in der Zieltabelle an der zweiten Position. Das bedeutet, dass Ihr Ziel jetzt 3 Spalten (1, 2, 3) und 3 Zeilen (A, X, B) hat.
Resultierende Zieltabelle Dann erstellen Sie den Testschritt Verify values in the target table, um einige der Attribute erfolgreich zu überprüfen.
Überprüfung unterschiedlicher Tabellenattribute |