繁体   English   中英

如何在TestFX 4中完成?

[英]How to do it in TestFX 4?

我有一个关于testFx 4的问题。有一个GUI对象,我想在其中将文本设置为TextField(“ #searchField”)。

它在TestFx 3中的工作方式如下:

//Load FXML
@Override
protected Parent getRootNode() {
Parent parent = null;

try {
    FXMLLoader loader = new FXMLLoader(); 
    loader.setResources(ResourceBundle.getBundle(ENTITIES_FIELDS_BUNDLE_PATH, Locale.GERMANY));            
    parent = loader.load(this.getClass().getClassLoader().getResource(SHOW_ALL_LAYOUT_PATH).openStream()); 
} catch (IOException ex) {}

return parent;
}

//Set text into Field and check it's there
@Test
public void setBothnamesAndCheckEnabledSearchButton() {
    TextField searchField = find("#searchField");
    searchField.setText("new text");
    verifyThat("#searchField", hasText("new text"));     
}

因此,它可以正常工作,并且一切正常。

在TestFx 4中100%相同情况:

@Override
public void start(Stage stage) throws Exception {
    try {
        FXMLLoader loader = new FXMLLoader(); 
        loader.setResources(ResourceBundle.getBundle(ENTITIES_FIELDS_BUNDLE_PATH, Locale.GERMANY));            
        AnchorPane pane  = (AnchorPane)loader.load(this.getClass().getClassLoader().getResource(SHOW_ALL_LAYOUT_PATH).openStream()); 

        Scene scene = new Scene(pane);
        stage.setScene(scene);
    } catch (IOException ex) {}
}

@Test
public void setBothnamesAndCheckEnabledSearchButton() {
    clickOn("#searchField").write("new text");
    verifyThat("#searchField", hasText("new text"));         
}

我总是变成“ FxRobotException:查询” #searchField“没有返回节点。所以他没有”看到“相同的TextField ...

我做错什么了吗? 我敢肯定这真是愚蠢,我看不到...有人可以帮我吗? 谢谢!

因此,我终于找到了答案:我应该在重写的start()方法的末尾调用stage.show() testFX找不到任何不可见的组件...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM