Frage

Ich arbeite mit einem JUnit-Testfall auf meiner Eclipse-Anwendung, die gebaut wurde SWT. Ich tue GUI-Tests mit SWTBot. So, hier ist mein Problem:

editor.bot().button("Make Excel Template").click();

Dieser Code hilft mir, eine Vorlage in meiner Anwendung zu generieren. Ist das erledigt, wirft es einen Modal Dialog mit „OK“ als eine Nachricht auf. Allerdings kann ich bekommen SWTBot nicht auf diese Schaltfläche / Widget / Dialogfeld zu finden. Ich erhalte eine 'WidgetNotFoundException'.

Hat jemand über diese kommen? offizielle Inhalte auf der SWTBot Website sagen, dass Dialogfelder sollten in separaten nicht-UI-Threads ausgeführt werden. Die Beispiele jedoch unter der Voraussetzung, sind nicht sehr informativ.

Schätzen Sie Ihre Hilfe!

War es hilfreich?

Lösung 2

@carstenlez - Ihre Lösung funktioniert gut für JFace Dialogfelder. Meine App ist jedoch unter Verwendung eines MessageBox - das ist ein nativer Dialog ist. SWTBot unterstützt keine nativen Dialoge, also bin ich ziemlich viel von Optionen.

Andere Tipps

Als erstes sollten Sie Ihre Tests in einem nicht-UI-Thread ausgeführt werden (falls nicht bereits tun). Zweitens können Sie eine Bedingung verwenden, um warten auf Ihre modaler Dialog angezeigt werden, nachdem die Aktion ausführt, die den Dialog nach oben bringen wird:

bot.waitUntil(Conditions.shellIsActive("This is the title of the modal dialog "));
bot.button("OK").click();

Dies löste unsere Timing-Probleme.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top