SWTBOTを使用してヘッドレスモードでテストを実行しながら、SWTダイアログボックスの取り扱い
-
19-09-2019 - |
質問
私はSWTを使用して構築された私のEclipseアプリケーションのJUnitテストケースを実行しています。私はSWTBotを使用してGUIのテストを行っています。だから、ここに私の問題があります:
editor.bot().button("Make Excel Template").click();
このコードは、私は自分のアプリケーションでテンプレートを生成するのに役立ちます。一度行われ、それがメッセージとして、「OK」でモーダルダイアログをスローします。しかし、私は、このボタン/ウィジェット/ダイアログボックスを見つけるために、SWTBotを取得することはできません。私は 'WidgetNotFoundException' を取得しておく。
誰かがこの遭遇していますか? SWTBotのウェブサイト上の公式コンテンツは、ダイアログボックスが別々の非UIスレッドで実行されるべきであると述べています。しかし、提供されている例は、非常に有益ではありません。
あなたの助けに感謝!
解決 2
@carstenlez - あなたのソリューションは、JFaceのダイアログボックスに適しています。ネイティブのダイアログです - 私のアプリは、しかし、メッセージボックスを使用することです。 SWTBotは、ネイティブのダイアログをサポートしていないので、私は選択肢のうちのかなりのです。
他のヒント
(まだ行っていない場合)
まず、非UIスレッドでテストを実行する必要があります。 第二に、あなたのモーダルダイアログがダイアログが表示されますアクションを実行した後に表示されるのを待つように条件を使用することができます:
bot.waitUntil(Conditions.shellIsActive("This is the title of the modal dialog "));
bot.button("OK").click();
これが私たちのタイミングの問題を解決します。
所属していません StackOverflow