JemmyFX鼠标点击TimeoutExpiredException

时间:2015-08-28 08:00:57

标签: user-interface junit javafx jemmy jemmyfx

我想开始使用JemmyFX来测试我的JavaFX GUI应用程序。为此,我使用了本教程中给出的小示例应用程序:http://code.makery.ch/library/javafx-8-tutorial/part1/

鉴于此JUnit测试

public class SampleTest1 {

private SceneDock scene;
private LabeledDock btnNew;
private LabeledDock btnEdit;
private LabeledDock btnDelete;

@BeforeClass
public static void setUpClass() throws AWTException {
    AppExecutor.executeNoBlock(MainApp.class);
}

@Before
public void before() {

    this.btnNew = null;
    this.btnEdit = null;
    this.btnDelete = null;

    this.scene = new SceneDock();
    this.btnNew = new LabeledDock(this.scene.asParent(), "New...", StringComparePolicy.EXACT);
    this.btnEdit = new LabeledDock(this.scene.asParent(), "Edit...", StringComparePolicy.EXACT);
    this.btnDelete = new LabeledDock(this.scene.asParent(), "Delete", StringComparePolicy.EXACT);
}

@Test
public void buttonsInitialized() {
    assertTrue(this.btnNew != null);
    assertTrue(this.btnEdit != null);
    assertTrue(this.btnDelete != null);
}

@Test
public void clickNew() {
    System.out.println("Clicking New... Button.");
    this.btnNew.mouse().click(1);
}

}

输出

点击新建...按钮。

操作'在null上单击BUTTON1鼠标按钮1次'失败,但出现以下异常: org.jemmy.TimeoutExpiredException:State'等待玻璃机器人初始化'。尚未达到10000毫秒     在org.jemmy.timing.Waiter.ensureState(Waiter.java:121)     at org.jemmy.input.glass.GlassInputFactory.getRobot(GlassInputFactory.java:64)     在org.jemmy.input.glass.GlassMouse $ 3.run(GlassMouse.java:121)     在org.jemmy.action.Action.execute(Action.java:57)     在org.jemmy.action.AbstractExecutor.execute(AbstractExecutor.java:103)     在org.jemmy.input.glass.GlassInputFactory.runAction(GlassInputFactory.java:116)     在org.jemmy.input.glass.GlassMouse.doMove(GlassMouse.java:116)     在org.jemmy.input.glass.GlassMouse.move(GlassMouse.java:140)     在org.jemmy.input.glass.GlassMouse $ 4.run(GlassMouse.java:174)     在org.jemmy.action.Action.execute(Action.java:57)     at org.jemmy.action.ActionQueue $ ActionRecord.execute(ActionQueue.java:172)     at org.jemmy.action.ActionQueue $ 1.run(ActionQueue.java:70)     在java.lang.Thread.run(未知来源)

测试buttonsInitialized()传递,而clickNew()测试则不传递。执行测试的顺序无关紧要,或者只执行一个测试,clickNew()将始终失败,因为org.jemmy.TimeoutExpiredException。

我觉得Jemmy / JemmyFX没有太多信息或详细的API文档。有关TimeoutExpiredException的唯一解决方案是:https://stackoverflow.com/questions/25940032/jemmyfx-sample-error

但是,我无法运行ANT脚本来自己为JemmyFX构建必要的JAR文件(在本教程中描述:https://jemmy.java.net/JemmyFXGuide/jemmy-guide.html)。因此,我的一位朋友通过电子邮件向我发送了他一个月前建造的JAR,我认为它们是自上一次JemmyFX更新显然发生在三年前以来的最新版本。

感谢任何帮助,非常感谢。

0 个答案:

没有答案