Historische Knoten

Die folgenden Knoten wurden im Laufe der Entwicklungszeit von QF-Test angeboten, werden aber nicht mehr weitergepflegt. Aus Gründen der Rückwärtskompatibilität können diese aber noch ausgeführt werden.

'Test'

Hinweis Vor QF-Test Version 2 war der 'Test' Knoten einer der zentralen Bausteine einer Testsuite. Er hat allerdings einige Schwachpunkte. So ist zum Beispiel seine Struktur für Vorbereitungs- und Aufräumarbeiten für komplexe Szenarios zu unflexibel. Außerdem war nie klar, ob ein 'Test' Knoten einen logischen Testfall repräsentiert oder nur zur Implementierung einer einfachen Sequenz dient. Daher wurden 'Test' Knoten durch 'Testfallsatz' und 'Testfall' Knoten abgelöst.

Ein 'Test' ist eine besondere Sequenz, die es erlaubt, vor und nach der Ausführung jedes ihrer Childknoten spezielle Maßnahmen zu treffen, um einen gesicherten Ausgangszustand herzustellen. Dazu kann der Test neben seinen normalen Children als erstes Child einen 'Vorbereitung' und als letztes Child einen 'Aufräumen' Knoten enthalten. Die 'Vorbereitung' wird vor, das 'Aufräumen' nach jedem normalen Childknoten ausgeführt.

Mit seinem Attribut 'Implizit Exceptions fangen' bietet ein 'Test' eine besondere Möglichkeit zur Behandlung von Exceptions um den Abbruch eines gesamten Testlaufs durch eine einzelne Exception in einem 'Test' zu verhindern.

Für spezielle Fälle von datengetriebenem Testen kann der 'Test' auch einen 'Datentreiber' enthalten. Im Regelfall wird dies jedoch mit Hilfe von 'Testfallsätze' realisiert, wie in Kapitel 21 beschrieben. Dieser Anwendungsfall kann auch per 'Testschritt' Knoten abgedeckt werden.

Aus Gründen der Rückwärtskompatibilität und um den Übergang von den alten 'Test' Knoten zu den modernen 'Testfallsatz' und 'Testfall' Knoten zu erleichtern, behandelt QF-Test 'Test' Knoten im Report analog zu 'Testfallsatz' oder 'Testfall' Knoten, sofern deren Position in der Hierarchie dies zulässt. In einigen Fällen konnte ein 'Test' Knoten auch wie ein 'Testschritt' behandelt werden, um z.B. datengetriebene Testschritte zu erlauben.

Alte Testsuiten, deren Struktur noch auf 'Test' Knoten basiert, können migriert werden, um die neuen Features von 'Testfallsätze' und 'Testfälle' zu nutzen. Klicken Sie hierzu mit der rechten Maustaste auf einen Knoten, um dessen Kontextmenü anzuzeigen. Wenn eine Transformation erlaubt ist, wird QF-Test anbieten, den 'Test' Knoten in einen 'Testfallsatz', 'Testfall' oder 'Testschritt' Knoten umzuwandeln.

3.0+ Um eine ganze Hierarchie von 'Test' Knoten zu transformieren müssen Sie von oben nach unten arbeiten oder die Knotentransformation "Testfallsatz rekursiv" anwenden.

Hinweis Sowohl 'Testfallsatz' als auch 'Testfall' Knoten können aus Gründen der Rückwärtskompatibilität 'Vorbereitung' und 'Aufräumen' Knoten enthalten. Bei einem 'Testfallsatz' verhalten sich diese genau wie bei einem 'Test', d.h. 'Vorbereitung' und 'Aufräumen' Knoten werden vor und nach jedem im 'Testfallsatz' enthalten Test ausgeführt. Bei einem 'Testfall' werden hingegen 'Vorbereitung' und 'Aufräumen' nur einmal ganz zu Beginn und Ende ausgeführt. Enthält ein 'Testfallsatz' oder 'Testfall' Knoten sowohl 'Abhängigkeit' als auch 'Vorbereitung'/'Aufräumen' Knoten wir die 'Abhängigkeit' zuerst aufgelöst. 'Vorbereitung' und 'Aufräumen' haben keinen Einfluss auf den in Abschnitt 8.6.3 beschriebenen Stapel von Abhängigkeiten.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Ein optionaler 'Datentreiber' gefolgt von einer optionalen 'Vorbereitung' am Anfang, dann beliebige ausführbare Knoten und ein optionales 'Aufräumen' am Ende.

Ausführung: Die 'Variablendefinitionen' des 'Tests' werden gebunden. Ist ein 'Datentreiber' Knoten vorhanden, wird dieser ausgeführt, um einen entsprechenden Datenkontext zu erzeugen und einen oder mehrere 'Daten' Knoten zu binden mit dem Zweck, über die ermittelten Datensätze zu iterieren (vgl. Kapitel 21). Für jeden normalen Childknoten des Tests wird zunächst die 'Vorbereitung' ausgeführt, dann das Child, dann der 'Aufräumen' Knoten. Zuletzt werden die Variablen des Tests wieder gelöscht.

Attribute:

Test Attribute
Abbildung 40.94:  'Test' Attribute
'Name'

Der Name einer Sequenz ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion der Sequenz aussagen.

Variabel: Nein

Einschränkungen: Keine

'Name für separates Protokoll'

Mit diesem Attribut kann ein Knoten als Bruchstelle zum Abteilen eines Protokolls markiert werden. Es legt den Dateinamen für das abgeteilte Protokoll fest. Nach Durchlaufen des Knotens wird das zugehörige Protokoll aus dem Hauptprotokoll entfernt und als eigenständiges Protokoll gespeichert. Diese Operation ist vollständig transparent, da das Hauptprotokoll eine Referenz auf das abgeteilte Protokoll erhält und somit vollständig navigierbar bleibt. Näheres zu geteilten Protokollen finden Sie in Abschnitt 7.1.6.

Dieses Attribut hat keinen Effekt, wenn die Option Geteilte Protokolle erzeugen deaktiviert ist oder geteilte Protokolle durch explizite Angabe von -splitlog im Batchmodus ausgeschaltet werden.

Es ist nicht nötig für Eindeutigkeit der Dateinamen für abgeteilte Protokolle zu sorgen. Wo nötig hängt QF-Test eine Zahl an den Dateinamen an, um Konflikte zu vermeiden. Der Dateiname darf Verzeichnisse enthalten und es können - analog zur Angabe des Dateinamens für das Protokoll im Batchmodus - folgende Platzhalter in Kombination mit einem '%' oder '+' Zeichen verwendet werden:

ZeichenBedeutung
%'%'-Zeichen.
+'+'-Zeichen.
iDie aktuelle Runid wie mit -runid [<ID>] angegeben.
rDie Fehlerstufe des abgeteilten Protokolls.
wDie Anzahl der Warnungen im abgeteilten Protokoll.
eDie Anzahl der Fehler im abgeteilten Protokoll.
xDie Anzahl der Exceptions im abgeteilten Protokoll.
tDer Threadindex zu dem das abgeteilte Protokoll gehört (für Tests mit parallelen Threads).
yDas aktuelle Jahr (2 Ziffern).
YDas aktuelle Jahr (4 Ziffern).
MDer aktuelle Monat (2 Ziffern).
dDer aktuelle Tag (2 Ziffern).
hDie aktuelle Stunde (2 Ziffern).
mDie aktuelle Minute (2 Ziffern).
sDie aktuelle Sekunde (2 Ziffern).
Tabelle 40.39:  Platzhalter für das Attribut 'Name für separates Protokoll'

Variabel: Ja

Einschränkungen: Keine, Zeichen die für Dateinamen nicht zulässig sind werden durch '_' ersetzt.

'Variablendefinitionen'

Hier können Sie Werte für Variablen definieren, die während der Ausführung der Children der Sequenz Gültigkeit besitzen. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5. Eine detaillierte Erklärung zur Definition und Verwendung von Variablen finden Sie in Kapitel 6.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'Implizit Exceptions fangen'

Wenn in einem der Children des Tests eine Exception auftritt, die nicht abgefangen wird, ist der Test normalerweise beendet. Das ist oft nicht wünschenswert, da man keine Information über den Testausgang der weiteren Children erhält.

Wenn 'Vorbereitung' und 'Aufräumen' so beschaffen sind, dass Sie den Ausgangszustand auch dann sicher stellen können, wenn eine Exception in einem normalen Child des Tests auftritt, können Sie hiermit die Exception implizit abfangen.

Anstatt dann bei einer Exception abzubrechen, protokolliert der Test diese und fährt mit dem 'Aufräumen' fort. Anschließend wird der nächste Childknoten ganz normal mit 'Vorbereitung' und 'Aufräumen' ausgeführt.

Exceptions, die während der 'Vorbereitung' oder des 'Aufräumen' auftreten, können auf diesem Weg nicht abgefangen werden.

Variabel: Nein

Einschränkungen: Keine

'Maximaler Fehler'

Wenn beim Ablauf des Tests innerhalb der Sequenz eine Warnung, ein Fehler oder eine Exception auftritt, wird dieser Status im Protokoll normalerweise an die übergeordneten Knoten weitergeleitet. Mit diesem Attribut können Sie den Fehlerstatus, den das Protokoll für diese Sequenz erhält, beschränken.

Hinweis Dieser Wert beeinflusst ausschließlich den Status des Protokolls und damit den Rückgabewert von QF-Test falls es im Batchmodus läuft (vgl. Abschnitt 1.7). Auf die Behandlung von Exceptions hat er keinen Einfluss.

Auch für die Erstellung kompakter Protokolle (vgl. Kompakte Protokolle erstellen), hat dieser Wert keinen Einfluss. Eine Sequenz, in der eine Warnung oder ein Fehler auftritt, wird nicht aus einem kompakten Protokoll entfernt, selbst wenn über dieses Attribut der Fehlerstatus auf "Keinen Fehler" zurückgesetzt wird.

Variabel: Nein

Einschränkungen: Keine

'Maximale Ausführungszeit'

Zeit in Millisekunden, die der Knoten maximal ausgeführt werden soll. Nach Ablauf dieser Zeit wird der Knoten abgebrochen.

Variabel: Ja

Einschränkungen: >= 0

'QF-Test ID'

Bei der Ausführung von Tests im Batchmodus kann beim Kommandozeilenargument -test <Index>|<ID> alternativ zum qualifizierten Namen die 'QF-Test ID' des Knotens angegeben werden.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

Prozedur installCustomWebResolver

Bis QF-Test 7 erfolgte die Zuordnung der funktionalen Komponenten zu HTML Objekten im Normalfall über die Prozedur qfs.web.ajax.installCustomWebResolver aus der Standardbibliothek qfs.qft. Sie wurde durch den 'CustomWebResolver installieren' Knoten ersetzt.

WebResolver_setup_sequence
Abbildung 40.95:  Aufruf des CustomWebResolvers im 'Vorbereitung' Knoten des Schnellstart-Assistenten

Die Erläuterung der Parameter finden Sie in installCustomWebResolver - Parameter, die der Parametersyntax in installCustomWebResolver - Parametersyntax. Beispiele für die Verwendung der Prozedur Sie daran anschließend.

installCustomWebResolver - Parameter

Die Parameter sind entsprechend ihrer Relevanz geordnet. Da die Komponentenerkennung sehr oft auf der Zuordnung von CSS Klassen oder anderen Attributwerten zu generischen Klassen von QF-Test basiert, sind somit die Parameter genericClasses und attributesToGenericClasses an erster Stelle zu finden.

 
 
installCustomWebResolver
Konfiguration der Komponentenerkennung für Web-Anwendungen.
Parameter
resolver Kurzame des Frameworks für das die Komponentenerkennung erweitert werden soll:

- autodetect (Standardwert), für die automatische Erkennung des verwendeten Frameworks.

- custom, wenn die Anwendung mit keinem der von QF-Test unterstützten Webframeworks erstellt wurde.

- Der Kurzname des Frameworks, z.B. zk oder vaadin.
Den Kurzname des jeweiligen Frameworks können Sie der Tabelle Tabelle 49.7 entnehmen.
Wenn Sie die Startsequenz über den Schnellstartassistenen erstellen lassen und dort ein Framework angeben, wird der Kurzname direkt hier eingetragen.
version Die Resolver-Version, z.B. 1 oder 1.0 oder 1.1.1.
Wenn eine Beschränkung angegeben wird, wird innerhalb dieser die letzte verfügbare Version verwendet. Also würde bei 1.0 die letzte verfügbare 1.0.x verwendet. Wird nichts angegeben, wird die letzte verfügbare Version verwendet.
Bei automatischer Erkennung den Parameter entweder aus dem Prozeduraufruf löschen oder leer lassen.
genericClasses (Optional) Eine Liste von Zuweisungen, die CSS Klassen auf generische QF-Test Klassen mappen.
Dieser Parameter nutzt nur das class Attribut des GUI-Elements. Im class Attribut können mehrere css-Klassen genannt werden. Diese sind durch Leerzeichen getrennt. Es kann für das Mapping eines GUI-Elements eine dieser css-Klassen angegeben werden.
Kann durch Einträge in attributesToGenericClasses überschrieben werden.
z.B. css-button=Button,ui-table=Table.
Beispiel für mehrere css-Klassen im GUI-Element:
class="button css-button active". Im obigen Beispiel wurde für das Mapping die css-Klasse css-button gewählt.
(verwendet node.getAttribute(class)).
attributesToGenericClasses (Optional) Eine Liste von Zuweisungen, die GUI-Elemente mit den angegebenen Attributwerten QF-Test Komponenten der jeweiligen generischen Klasse zuordnen,
Es wird der komplette Wert des angegebenen Attributs geprüft. Zuweisungen über diesen Parameter können Zuweisungen im Parameter genericClasses überschreiben.
z.B. id=table=Table,name=%.*combo.*=ComboBox.
Beispiel zum Überschreiben des Parameters genericClasses mit mehreren css-Klassen:
class=button css-button active=Button.
tagsToGenericClasses (Optional) Eine Liste von Zuweisungen, die GUI-Elemente mit dem angegebenen Tag QF-Test zu Komponenten der angegebenen generischen Klasse zuordnen.
z.B. LI=ListItem.
Tags müssen in Großbuchstaben angegeben werden.
ignoreTags (Optional) Eine Liste von Klassennamen oder Tags, für deren Komponenten keine Knoten in der Komponentenhierarchie erstellt werden, solange diese nicht durch andere Anweisungen gemappt werden. Tags müssen in Großbuchstaben angegeben werden.
z.B. werden durch den Eintrag DIV,TBODY alle DIV und TBODY Elemente, die nicht anderweitig gemappt wurden, bei der Erstellung des Komponentenbaums ignoriert.
ignoreByAttributes (Optional) Eine Liste von Attributwerten, für deren Komponenten keine Knoten in der Komponentenhierarchie erstellt werden,
z.B. id=container,id=header.
autoIdPatterns (Optional) Eine Liste von Mustern, aus denen abgeleitet werden kann, ob Ids automatisch über das Framework generiert wurden. Falls das id Attribut dem Muster entspricht, wird der Wert nicht für das 'Name' Attribut der Komponente verwendet,
z.B. myAutoId,%auto.*.
customIdAttributes (Optional) Eine Liste von Attributnamen, deren Werte als Ids für die Komponente verwendet werden können,
z.B. bewirkt myid,qft-id, dass die Attribute myid und qft-id als Ids interpretiert werden.

interestingByAttributes (Optional) Eine Liste von Attributwerten, die angeben, ob eine Komponente für die Wiedererkennung interessant ist und somit ein Knoten dafür in der Komponentenhierarchie erstellt werden soll,
z.B. id=container,id=header.
attributesToQftFeature (Optional) Eine Liste von Attributnamen, deren Werte für das 'Merkmal' Attribut der Komponente verwendet werden sollen.
documentJS (Optional) Javascript Code, der in die Webseite eingefügt (injected) werden soll. Kann verwendet werden um benutzerspezifische Javascript Funktionen einzufügen.
attributesToQftName (Optional) Eine Liste von Attributnamen, der Werte für das 'Name' Attribut der Komponente verwendet werden sollen.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
nonTrivialClasses (Optional) Eine Liste von CSS Klassen, für die die zugehörigen Elemente von QF-Test nicht ignoriert werden sollen. Triviale Klassen sind I, FONT, BOLD etc. Wenn die zugehörigen Komponenten (z.B. ein Bild innerhalb eine Buttons) ansprechbar sein sollen, muss die entsprechende triviale Klasse einer generischen QF-Test Klasse zugewiesen werden.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
allBrowsersSemihardClasses (Optional) Eine Liste von Klassen, auf deren Komponenten semi-harte Events abgespielt werden sollen. Gilt für alle Browser. z.B. spielt der Eintrag Button semi-harte Klicks auf Buttons ab.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
Alternativ können Sie die globale Option Options.OPT_WEB_SEMI_HARD_EVENTS auf "true", setzen, was sich auf alle Komponenten auswirkt.
chromeSemihardClasses (Optional) Eine Liste von Klassen, auf deren Komponenten semi-harte Events abgespielt werden sollen. Gilt für Chrome. z.B. spielt der Eintrag Button semi-harte Klicks auf Buttons im Chrome Browser ab.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
Alternativ können Sie die globale Option Options.OPT_WEB_SEMI_HARD_EVENTS auf "true", setzen, was sich auf alle Komponenten auswirkt.
ieSemihardClasses (Optional) Eine Liste von Klassen, auf deren Komponenten semi-harte Events abgespielt werden sollen. Gilt für alle den Internet Explorer. z.B. spielt der Eintrag Button semi-harte Klicks auf Buttons im Internet Explorer ab.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
Alternativ können Sie die globale Option Options.OPT_WEB_SEMI_HARD_EVENTS auf "true", setzen, was sich auf alle Komponenten auswirkt.
mozSemihardClasses (Optional) Eine Liste von Klassen, auf deren Komponenten semi-harte Events abgespielt werden sollen. Gilt für Firefox. z.B. spielt der Eintrag Button semi-harte Klicks auf Buttons im Firefox Browser ab.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
Alternativ können Sie die globale Option Options.OPT_WEB_SEMI_HARD_EVENTS auf "true", setzen, was sich auf alle Komponenten auswirkt.
edgeSemihardClasses (Optional) Eine Liste von Klassen, auf deren Komponenten semi-harte Events abgespielt werden sollen. Gilt für Edge. z.B. spielt der Eintrag Button semi-harte Klicks auf Buttons in Edge ab.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
Alternativ können Sie die globale Option Options.OPT_WEB_SEMI_HARD_EVENTS auf "true", setzen, was sich auf alle Komponenten auswirkt.
allBrowsersHardClasses (Optional) Eine Liste von Klassen, auf deren Komponenten harte Events abgespielt werden sollen. Gilt für alle Browser. z.B. spielt der Eintrag Button harte Klicks auf Buttons ab.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
Alternativ können Sie "Als harten Event wiedergeben" in den 'Mausevent' Knoten aktivieren.
chromeHardClasses (Optional) Eine Liste von Klassen, auf deren Komponenten harte Events abgespielt werden sollen. Gilt für Chrome. z.B. spielt der Eintrag Button harte Klicks auf Buttons ab.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
Alternativ können Sie "Als harten Event wiedergeben" in den 'Mausevent' Knoten aktivieren.
ieHardClasses (Optional) Eine Liste von Klassen, auf deren Komponenten harte Events abgespielt werden sollen. Gilt für den Internet Explorer. z.B. spielt der Eintrag Button harte Klicks auf Buttons ab.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
Alternativ können Sie "Als harten Event wiedergeben" in den 'Mausevent' Knoten aktivieren.
mozHardClasses (Optional) Eine Liste von Klassen, auf deren Komponenten harte Events abgespielt werden sollen. Gilt für Firefox. z.B. spielt der Eintrag Button harte Klicks auf Buttons ab.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
Alternativ können Sie "Als harten Event wiedergeben" in den 'Mausevent' Knoten aktivieren.
edgeHardClasses (Optional) Eine Liste von Klassen, auf deren Komponenten harte Events abgespielt werden sollen. Gilt für Edge. z.B. spielt der Eintrag Button harte Klicks auf Buttons ab.
Mit Vorsicht verwenden! Falls Sie sich unsicher sind, wenden Sie sich bitte an das QF-Test Support Team.
Alternativ können Sie "Als harten Event wiedergeben" in den 'Mausevent' Knoten aktivieren.
 
 

installCustomWebResolver - Parametersyntax

Wenn für einen Parameter mehrere Einträge möglich sind, so müssen die einzelnen Zuweisungen oder Ausdrücke in den Parameterlisten durch Kommas voneinander getrennt werden. Nach dem Komma kann ein Zeilenumbruch eingefügt werden, aber kein Leerzeichen!

Die Parametersyntax umfasst folgende Ausdrücke, nach Relevanz geordnet:

%

% gibt an, das die folgene Zeichenkette als regulärer Ausdruck interpretiert werden soll.

%list.* bezeichnet alle Werte, die mit list beginnen.

Nutzbar für alle Parameter.

css-class=generic class

Ordnet einem GUI-Element mit der angegebenen CSS Klasse eine QF-Test Komponente der angegebenen generischen Klasse zu.

css-button=Button ordnet dem GUI-Element mit der CSS Klasse css-button eine QF-Test Komponente mit der generischen Klasse Button zu.

Nutzbar im Parameter genericClasses

.
attribute=value=generic class

Ordnet einem GUI-Element mit dem angegebenen Attributwert eine QF-Test Komponente der angegebenen generischen Klasse zu.

role=toggle=RadioButton weist Elementen mit role Attributen, die den Wert toggle haben, QF-Test Komponenten der Klasse RadioButton zu.

Nutzbar im Parameter attributesToGenericClasses.

TAG=generic class

Ordnet einem GUI-Element mit dem angebenen Tag eine QF-Test Komponente der angegebenen generischen Klasse zu. Tags müssen in Großbuchstaben angegeben werden.

LI=ListItem ordnet einem GUI-Element mit dem Tag li eine QF-Test Komponente mit der generischen Klasse ListItem zu.

Nutzbar im Parameter tagsToGenericClasses.

@::ancestor=classname oder TAG

Kann an einen Eintrag der Parameterliste angehängt werden. Der Eintrag wird nur dann ausgewertet, wenn eines der übergeordneten Objekte des GUI-Elements den angegebenen generischen Klassenamen oder das angegebene Tag (in Großbuchstaben) hat.

Nutzbar in allen Parametern.

Beispiel für den Parameter tagsToGenericClasses:

LI=TableCell@::ancestor=TableRow ordnet einem GUI-Element mit dem Tag li eine QF-Test Komponente der generischen Klasse TableCell zu, wenn ein übergeordnetes Element die Klasse TableRow hat.

...=TAG

Die vorangehende Zuweisung wird nur ausgewertet, wenn das GUI-Element das angegebene Tag hat. Muss bei Bedarf vor @:: stehen.
Tags müssen in Großbuchstaben angegeben werden.

Nutzbar in allen Parametern.

Beispiel für den Parameter genericClasses:

row=TableRow=SPAN ordnet einem GUI-Element der CSS-Klasse row eine QF-Test Komponente mit der generischen Klasse TableRow zu, wenn das Tag den Wert SPAN hat.

Beispiel für den Parameter genericClasses:

row=TableRow=SPAN@::ancestor=Table ordnet einem GUI-Element der CSS-Klasse row eine QF-Test Komponente mit der generischen Klasse TableRow zu, wenn das Tag den Wert SPAN hat und wenn eines der übergeordneten Elemente die Klasse. Table hat.

Beispiel für den Parameter interestingByAttributes:

myid=%.*=CONTAINER nimmt GUI-Elemente mit dem Tag container auf, aber nur, wenn das Attribut den Wert myid hat.

@::parent=classname oder TAG

Kann an einen Eintrag der Parameterliste angehängt werden. Der Eintrag wird nur dann ausgewertet, wenn eines der übergeordneten Objekte des GUI-Elements den angegebenen generischen Klassenamen oder das angegebene Tag (in Großbuchstaben) hat.

Nutzbar in allen Parametern.

Beispiel für den Parameter genericClasses:

css-data-row=TableRow@::parent=Table
ordnet dem GUI-Element mit der CSS Klasse css-data-row eine QF-Test Komponente der generischen Klasse TableRow zu, wenn das direkt übergeordnete GUI-Element die Klasse Table hat.

@::parent<level>=classname oder TAG

Kann an einen Eintrag der Parameterliste angehängt werden. Der Eintrag wird nur dann ausgewertet, wenn eines der übergeordneten Objekte des GUI-Elements den angegebenen generischen Klassenamen oder das angegebene Tag (in Großbuchstaben) hat.

Die Ebene bezieht sich auf die von QF-Test aufgenommene Komponentenstruktur bzw. den generierten DomNode. Dies bedeutet, dass die Komponentenerkennung fehlschlagen kann, wenn sich die Webseite ändert oder Sie Resolver-Einträge ändern. Es könnte besser sein, statt dessen @::ancestor zu verwenden. Alternativ können Sie das entscheidende übergeordnete GUI-Element einer eigenen Klasse (oder Klassentyp) zuweisen und diese dann in @::parent oder @::ancestor einsetzen. Das Beispiel in 'CustomWebResolver' – Baum (Tree) verdeutlicht diese Technik.

Nutzbar in allen Parametern.

Beispiel für den Parameter genericClasses:

css-button=Button:ComboBoxButton@::parent<3>=ComboBox
Nimmt einen Button mit dem Typ ComboBoxButton auf, wenn der übergeordnete Knoten in Ebene drei die Klasse ComboBox hat.

@::ancestor<level>=classname oder TAG

Kann an einen Eintrag der Parameterliste angehängt werden. Der Eintrag wird nur dann ausgewertet, wenn eines der übergeordneten Objekte des GUI-Elements den angegebenen generischen Klassenamen oder das angegebene Tag (in Großbuchstaben) hat. (Ebenenzählung wie bei @::parent.)

Nutzbar in allen Parametern.

Beispiel für den Parameter genericClasses:

cbx=CheckBox:ListItemCheckBox@::ancestor<3>=List Nimmt eine CheckBox mit dem Typ ListItemCheckBox auf, wenn einer der Knoten in den drei übergeordneten Ebenen die Klasse List hat.

attribute=value

Nutzbar in den Parametern ignoreByAttributes und interestingByAttributes.

Im Parameter ignoreByAttributes bewirkt die Zuweisung, dass GUI-Elemente mit dem angegebenen Attributwert in der Baumhierarchie nicht angelegt werden.

Im Parameter interestingByAttributes bewirkt die Zuweisung, dass im Komponentenbaum Knoten für Elemente angelegt werden, die den angegebenen Attributwert aufweisen.

Beispiel für den Parameter ignoreByAttributes:

type=container bewirkt, dass im Komponentenbaum keine Knoten für Elemente angelegt werden, bei denen das Attribut type den Wert container hat.

Beispiel für den Parameter interestingByAttributes:

type=splitpane bewirkt, dass im Komponentenbaum Knoten für Elemente angelegt werden, bei denen das Attribut type den Wert splitpane hat.

Für Interessierte:
@::ancestor=class nutzt intern die Objekt-Methode obj.getAncestorOfClass(class).
@::ancestor<level>=class nutzt intern die Objekt-Methode obj.getAncestorOfClass(class, level)
@::parent= nutzt intern die Objekt-Methode obj.getParent()
@::parent<level>= nutzt intern die Objekt-Methode obj.getNthParent(level)

Details zu den Methoden finden Sie in Pseudo DOM API für Web-Anwendungen.