2017-11-13 1 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 경고 확인 버튼의 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> 

는 요소에 fx:id 값을 할당 은 코드의 다른 곳에서 참조 할 수있는 문서의 네임 스페이스에 변수를 만듭니다.

0

@KaluNight, 해결책은 괜찮지 만 영어 버전에만 적용됩니다.

ID로 작업하는 것이 좋습니다. 실제로 Alert은 자신의 버튼에 대해 fx:id을 정의하지 않지만 다음과 같이 지정할 수 있습니다.

Button okButton = (Button) alert.getDialogPane().lookupButton(ButtonType.OK); 
okButton.setId("my custom id"); 
관련 문제