45.1.10.1
Einfache Klassenzuweisung auf Basis des class Attributs

Für den Anfang wollen wir den '-5%' Button in der rechten unteren Ecke auf die generische Klasse 'Button' abbilden. Die aufgeführten Tabelle visualisiert unsere Zielsetzung. Auf der linken Seite finden Sie die aktuelle Aufzeichnung und auf der rechten Seite finden Sie unsere Wunschaufzeichnung.

Aktuelle Aufzeichnung Verbesserte Aufzeichnung
Aktuelle Aufzeichnung Verbesserte Aufzeichnung
Abbildung 45.7:  Verbesserung durch einfache Klassenzuweisung

Zuerst sollten Sie einen Text-Check oder einen Mausklick auf diesen Button aufzeichnen. Danach springen Sie mittels Rechtsklick und Auswahl von »Komponente finden« zur aufgezeichneten Komponente. Hier können wir sehen, dass wir eine Komponente von der Klasse DIV mit einem leeren Namen aufgezeichnet haben. In den weiteren Merkmalen können wir nichts Nützliches finden. Besonders auffallend ist, dass nirgends die Information über den aktuellen Text von '-5%' auffindbar ist. Demzufolge hat QF-Test keine guten Anhaltspunkte um diese Komponente stabil wiederzuerkennen. Es bleiben nur die Geometrie- und Strukturinformationen. Jetzt versuchen wir diese Komponenten zum einen für QF-Test stabiler erkennbar und zum anderen ihre Benennung lesbarer zu machen.

WebCarConfigDiv5
Abbildung 45.8:  Aufzeichnung des '-5%' Buttons im WebCarConfigurator

Wenn wir uns die Komponente näher anschauen, können wir in den weiteren Merkmalen das Merkmal class mit dem Wert button finden. Wir können also annehmen, dass jeder Button dieses spezielle Attribut besitzt. Insbesondere, wenn wir unsere Annahme an weiteren Buttons der Applikation überprüft haben.

Nun fügen wir einen Prozeduraufruf für qfs.web.ajax.installCustomWebResolver aus der Standardbibliothek qfs.qft unter den Extrasequenzen ein. Nachdem wir vorhin herausgefunden haben, dass das class Attribut die relevanten Informationen beinhaltet, können wir den Parameter genericClasses mit dem Wert button=Button versehen. Der Ausdruck button=Button bedeutet, dass jede Komponente, die den Wert button im Attribut class besitzt, von nun an die QF-Test-generische Klasse Button zugewiesen bekommt. Diese Zuweisung wird bei der nächsten Aufzeichnung QF-Test nun veranlassen, das Standardverhalten für Buttons bei dieser Komponente heranzuziehen. Führen Sie hierzu den Prozeduraufruf von qfs.web.ajax.installCustomWebResolver aus und zeichnen die Komponente nochmals auf. Sie werden jetzt folgende Aufzeichnung erhalten:

WebCarConfig5Custom2
Abbildung 45.9:  Aufzeichnung mit genericClasses im WebCarConfigurator

Bei dieser neuen Aufzeichnung erhalten Sie einen Klick auf eine Komponente mit der QF-Test ID button-5_. Diese Komponente hat nun die Klasse Button und der Text '-5%' wurde als Merkmal und sogar als weiteres Merkmal qfs:label erkannt. Diese Komponente wird von QF-Test ab jetzt als Button behandelt. Natürlich sollten Sie den Entwicklern immer noch vorschlagen, eine vernünftige ID zu vergeben und somit eine Eindeutigkeit bei der Komponentenerkennung zu erreichen, weil die ID von QF-Test als Name der Komponente verwendet wird.

Diese 'einfache' Zuweisung kann in vielen Fällen bereits ausreichend sein, besonders für Buttons, MenuItems oder Checkboxen. Falls in Ihrem Fall das Attribut nicht class sondern z.B. role ist, dann füllen Sie statt dem Parameter genericClasses den Parameter attributesToGenericClasses mit einem Wert wie role=button=Button. In einigen Fällen kann aber die Information über die Klasse nicht in der letzten Komponente im Baum, sondern in einer Komponente weiter oben in der Hierarchie zu finden sein. Wie man so eine Situation auflöst, finden Sie im nächsten Abschnitt.