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 | |


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).