gpt4 book ai didi

java - TestFX 4 从 ChoiceBox/菜单中选择一个值

转载 作者:行者123 更新时间:2023-11-30 02:49:59 26 4
gpt4 key购买 nike

我在这里摸不着头脑,试图让我的 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>

我如何实现机器人单击顶部菜单(最好通过菜单的可见文本)和内部的menuItem(也最好通过可视文本选择)

选择框示例:

<ChoiceBox fx:id="myChoices" />

它的项目是从我的 Controller 动态填充的:

@FXML private ChoiceBox myChoices;

@FXML
public void initialize() {
List<String> items = ItemsRepo.getItems();
myChoices.setItems(FXCollections.observableArrayList(items))
}

我可以首先通过它的 fx:id 单击 choiceBox。但我该如何选择其中一项呢?最好从项目中可见文本。项目文本可能会干扰应用程序内的其他文本。因此,我想确保单击选择框项目之一,而不是其他文本。

问候

最佳答案

我必须在我的测试用例中填写一个弹出表单,其中有一些 ChoiceBox 输入字段。 ChoiceBox 的项目在 PopUp 下方的场景中可见,因此不可能通过其文本找到项目(机器人通常会单击文本的另一个出现位置)。我通过 FxRobotInterface 实现了这一点,如下所示。

clickOn("#choiceBox");
type(KeyCode.DOWN);
type(KeyCode.ENTER);

这样,ChoiceBox 的第一项就被选中了。您无法完全控制使用此解决方案选择的项目,因为项目可能会发生变化,但它适用于我的情况。

关于java - TestFX 4 从 ChoiceBox/菜单中选择一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39034306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com