Я ломаю голову, пытаясь заставить моего робота TestFX щелкнуть Menu
, а затем MenuItem
.
Ни один из вышеперечисленных классов не является производным от Node
, поэтому я не могу использовать fxRobot.clickOn(Node node)
.
Кто-нибудь еще знает, как это сделать? Помимо простого использования TextMatcher, который выполняет поиск по всей области.
Пример MenuBar с меню:
<MenuBar fx:id="mainMenuBar">
<menus>
<Menu mnemonicParsing="false" style="-fx-font-weight: bold;" text="MainMenu">
<items>
<MenuItem mnemonicParsing="false" style="-fx-font-weight: normal;" text="About" />
<MenuItem mnemonicParsing="false" style="-fx-font-weight: normal;" text="Exit" />
</items>
</Menu>
Как мне добиться, чтобы робот щелкнул верхнюю часть Menu
(желательно видимым текстом меню) и элемент меню внутри (также предпочтительно выбранный визуальным текстом)
Пример окна выбора:
<ChoiceBox fx:id="myChoices" />
Его элементы динамически заполняются с моего контроллера:
@FXML private ChoiceBox myChoices;
@FXML
public void initialize() {
List<String> items = ItemsRepo.getItems();
myChoices.setItems(FXCollections.observableArrayList(items))
}
Я мог бы сначала щелкнуть поле выбора через его fx:id
. Но как мне тогда выбрать один из его элементов? Желательно из элементов виден текст. Тексты элементов могут мешать другим текстам внутри приложения. Поэтому я хочу убедиться, что я нажимаю один из элементов поля выбора, а не какой-либо другой текст.
С Уважением