FEST swing示例没有';t work,frame.isShowing()返回false

FEST swing示例没有';t work,frame.isShowing()返回false,swing,gui-testing,Swing,Gui Testing,尝试使用FEST Swing进行Swing GUI测试,并使用 不幸的是,frame.isShowing()总是返回false,尽管我已经看到JavaApp Swing正在运行 查看我的代码 ... ApplicationLauncher.application(JavaApp.class).start(); GenericTypeMatcher<Frame> matcher = new GenericTypeMatcher<Frame>(Frame.cl

尝试使用FEST Swing进行Swing GUI测试,并使用

不幸的是,frame.isShowing()总是返回false,尽管我已经看到JavaApp Swing正在运行

查看我的代码

...
    ApplicationLauncher.application(JavaApp.class).start();
    GenericTypeMatcher<Frame> matcher = new GenericTypeMatcher<Frame>(Frame.class) {
        protected boolean isMatching(Frame frame) {
        System.out.println("title:" + frame.getTitle() + " showing:" +frame.isShowing()); // .getTitle());
            return "Java Application".equals(frame.getTitle()) && frame.isShowing();
        }
    };
    Robot robot = BasicRobot.robotWithNewAwtHierarchy();
    FrameFixture frame2 = WindowFinder.findFrame(matcher).withTimeout(5000).using(robot);
...
两个问题:
1.我必须使用Frame而不是JFrame,否则它无法匹配,这会导致标题不正确,我希望是“Java应用程序”
2.frame.isShowing()总是返回false,这似乎很奇怪

顺便说一句:最新代码似乎需要GenericTypeMatcher()的参数
rgs/larry

问题是,在启动应用程序后,您正在使用新的Awthierarchy呼叫机器人。所发生的情况是,在调用
robotWithNewAwtHierarchy
之前实例化的任何帧或对话框都不会被创建的机器人看到

您可以将
robotWithNewAwtHierarchy
移动到启动应用程序的行之前,也可以改用
robotWithCurrentAwtHierarchy
(无论何时调用此方法,都会看到任何实例化的帧或对话框)

title: showing: false