2017-11-13 4 views
1

私のjavaFXアプリケーションをテストするためにTestFXフレームワークを使用します。 私はそのように自分のアプリケーションをテスト:JavaFX Alert OKボタンのfx:idとは何ですか?

@Test 
public void shouldClickOnDeletMarkerButton() { 
    FxRobot bot = new FxRobot(); 
    bot.robotContext(); 
    bot.clickOn("#deleteMarkerButton"); 
    bot.clickOn("javafx.scene.control.Alert.CANCEL_BUTTON"); //This doesn't work. 
} 

私はJavaFX Alert Dialogsの[OK]ボタンをクリックして彼が好きだろうが、私はFX発見していない:IDを。

JavaFX Alert OKボタンのfx:idとは何ですか?

編集:私は私の問題を解決するため、FxRobot「読んで」知っている、それは十分にこの作るされています

@Test 
public void shouldClickOnDeletMarkerButtonWhenAnyMarkerAsBeenCreated() { 
    bot.robotContext(); 
    bot.clickOn("#deleteMarkerButton"); 
    bot.clickOn("OK"); //Target text/Target Button/... 
} 

答えて

0
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 

<BorderPane fx:controller="sample.Controller" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 
    <Button text="Click me!" fx:id="button" onAction="#clickAction" BorderPane.alignment="CENTER"/> 
</BorderPane> 

Buttonコントロールのコードに示すように、要素にfx:id値を代入ドキュメントの名前空間に変数を作成します。この変数は、コードの他の場所から参照できます。

0

@KaluNight、あなたのソリューションは問題ありませんが、英語のローカリゼーションでのみ動作します。

IDで作業する方がよい。確かにAlertは、自分のボタンとしてfx:idを定義していませんが、それを行うことができます:

Button okButton = (Button) alert.getDialogPane().lookupButton(ButtonType.OK); 
okButton.setId("my custom id"); 
関連する問題