« Qualität in Software Exceptions Fangen und Werfen - Teil 2 »

Selenium und ExtJs

2009 5 June

Da es mich sehr viel Zeit gekostet hat die ExtJs Web Desktop Anwendung mit Selenium zu testen will ich euch kurz hier meine Lösung dafür vorstellen

Der wichtigste Punkt ist, dass verschiedene Stellen, wie der START Button unten links, auf einen mouseDown Event hört und nicht auf click Event, wie man zunächst meinen würde. Sobald ich das herausgefunden hatte kam ich eigentlich ganz gut zurecht. Ein sehr hilfreicher Selenium Command ist waitForElementPresent, den man relativ häufig einsetzten muss da das Element nicht sofort da ist und ansonsten nicht gefunden wird.
Was man auf jeden Fall anpassen muss sind die dynamischen ids, der Selenium IDE hat in der Regel ganz brauchbare Vorschläge für CSS Selectoren oder XPATH, die in den meisten Fällen ausreichen ansonsten muss man sich das selber schreiben.

Hier ein Bespiel

RubrikTest
mouseDown //button[@id='x-startbutton']
mouseOver //a[contains(text(),'Inhalt')]
waitForElementPresent //div[@class="x-layer x-menu"]
click //a[contains(text(),'Menue1')]
click //table[@id='id_add-rubrik']/tbody/tr/td[2]/em/button
type document.forms[0].elements[1] 1. Selenium Test Rubrik
type document.forms[0].elements[2] Neue Beschreibung
click //a[12]/em
click //div/table/tbody/tr/td[2]/em/button
waitForElementPresent //div[contains(text(),'1. Selenium Test Rubrik')]
mouseDown //tbody/tr/td[2]/div
click //td[3]/table/tbody/tr/td[2]/em/button
click //a[contains(text(),'löschen')]
waitForElementPresent //div[@class="x-window-tl"]
click //div[2]/div/div/div/div/div/table/tbody/tr/td[2]/table/tbody/tr/td[2]/em/button

Bearbeiten
Feed für diesen Eintrag

2 Antworten über Selenium und ExtJs

  • Vielen Dank Torsten! Der Beitrag hat mir viel Recherche erspart!!! Gut geschrieben und alle wichtigen Infos da - trotzdem kurz. Ein Tip für andere Leser: Die absoluten xpath-Ausdrücke zu einzelnen ext-Elementen findet man am schnellsten mit Firepath und der Option "generate absolute xpath"

  • Nachtrag zu meinem Eintrag von gestern:

    Im Ext-Kontext sind CSS-Selektoren in Selenium xpath-Selektoren in den meisten Fällen wesentlich überlegen: Ext hat die Eigenschaft, bestimmte divs je nach Reihenfolge von Aufrufen in unterschiedlicher Reihenfolge in den selben Container zu platzieren. Daher ist der Aufruf über absolute xpathes sehr heikel (z. B. bei der Filterung eines Grids).


Deine Angaben

Die Email Addresse wird nicht veröffentlicht

Dein Kommentar

Torsten Zander


 RSS Feed abonnieren

Twitter  Auf Twitter folgen

Posts

Blogrolls