当前位置: 首页 > 知识库问答 >
问题:

AssertJ Swing不能在一台Windows 10计算机上工作

况唯
2023-03-14
        FrameFixture fullScreenFrame = robot.getFullScreenFrameFixture();
        // Go to the configuration screen
        robot.runCommand("MENU config");
        robot.waitForIdle();

        // Select Buttons tab
        JTabbedPaneFixture tabbedPane = fullScreenFrame.tabbedPane();
        LOG.log(Level.WARNING, "Found the Tab Pane "+tabbedPane);
        tabbedPane.selectTab("Buttons");
        LOG.log(Level.WARNING, "Found the Buttons Tab");
        robot.waitForIdle();
        // Select the "or" button group
        robot.clickOnTable(fullScreenFrame, "buttons", "buttongroups", "Name", "or");
        robot.waitForIdle();
public FrameFixture getFullScreenFrameFixture() {
    return new FrameFixture(ROBOT, DataSource.getInstance().getFullScreenFrame());
}
public static final Robot ROBOT = BasicRobot.robotWithCurrentAwtHierarchy();
public void runCommand(final String command) {
    try {
        SwingUtilities.invokeAndWait(new Runnable() {
            @Override
            public void run() {
                DataSource.getInstance().getFullScreenFrame().handleCommand(command);
            }
        });
    } catch (InterruptedException ex) {
        Logger.getLogger("com.hcs.orc.demo.DemoRobot").log(Level.SEVERE, "Bad news - Robot failed to run the command "+command, ex);
    } catch (InvocationTargetException ex) {
        Logger.getLogger("com.hcs.orc.demo.DemoRobot").log(Level.SEVERE, "Bad news - Robot failed to run the command "+command, ex);
    }
    waitForIdle();
}

这段代码工作正常(并与我们更大的应用程序联系在一起),并为我们的应用程序打开了配置屏幕。

以下是等待空闲方法:

/**
 * Wait for the Event Thread to be idle.
 */
public void waitForIdle() {
    ROBOT.waitForIdle();
}

在Windows10机器上,clickOnTable()方法失败,因为tabbedpane.selecttab(“buttons”)方法实际上没有单击选项卡,因此屏幕上没有显示我们要查找的表。

    null

更新1

在失败的笔记本电脑和工作的Windows10机器上尝试了不同版本的Java。两者都没有区别。

出现故障的笔记本电脑运行的是Windows 10 V1803。工作机器运行的是Windows10 V1809。

我们在一台不同的笔记本电脑上尝试了它,这是相同的硬件和操作系统,它以同样的方式失败了。

共有1个答案

訾高飞
2023-03-14

这是Java8中的一个bug,在这里进行了说明:

https://bugs.openjdk.java.net/browse/jdk-8196030?attachmentOrder=des

不幸的是,Oracle的第一个评论声称这个bug不会影响Java8。这不是真的,因为票证中的测试用例在我的测试系统上失败了,这显示了问题。

 类似资料:
  • 试了好几个方法,只好问到这里。所以最近我在我自己的一个网站上工作,这个网站是在我的本地桌面上开发的(使用xampp),但是现在我想从我的笔记本电脑(ubuntu 16.04)在同一个网站上工作(本地),所以我在我的笔记本电脑上安装了xampp(lampp)尝试了以下方法:- 1.)我从桌面(localhost/phpmyadmin)导出了数据库 2。)已从桌面版本复制wordpress/wp内容文

  • 我遇到了用ProcessBuilder执行Windows程序的问题。下面的代码将生成一个命令数组,如: 当我调试Java程序时,我可以看到gdalwarp.exe是可执行的,并且环境设置与在cmd终端中执行gdalwarp.exe时相同。processBuilder似乎不执行GDalWarp。我得到的退出代码是-1073741511,它应该是0或-1。errorStream是空的,我没有得到任何打

  • 我创建了一个应用程序,在我的计算机中,这个jar运行没有任何问题。我试着在另一台电脑上运行它,它什么都做不到。然后,我在另一台pc上尝试了同样的jar(如果你想这样看的话,是第三台),在那里,jar运行没有问题。所以我回到第二个,试着从命令行运行它,它给了我这个错误: “main”java.lang.UnsatisfiedLinkError头出现异常:无法加载库:C:\users\hectlr\l

  • 我想这个stackoverflow问题已经有了我的答案:IntelliJ runnable jar不能在其他计算机上运行,这个问题的答案是大多数IDE可以自动包含所需的java库,使jar在没有JDK的PC上可以运行。我的问题是,在IntelliJ中,我可以确保这些库包含在哪里? 这就是我的工件设置的样子:链接也许我需要在这里更改什么? 编辑:我的问题是:IntelliJ生成的jar文件在我的计算

  • 问题内容: Python网站上是否有官方文档,内容涉及如何在Linux的同一台计算机上安装和运行多个版本的Python? 我可以找到成千上万的博客文章和答案,但是我想知道是否有“标准”的官方方式来做到这一点? 还是全部取决于操作系统? 问题答案: 我认为这是完全独立的。只需安装它们,然后即可使用命令例如和。链接到您要用作默认值的那个。 无论如何,所有库都位于单独的文件夹中(以版本命名)。 如果要手

  • 问题内容: 我有以下HTML和CSS代码。一台机器在IE8中工作正常;但在第二台计算机上与IE8对齐。为了纠正它要更改什么? 注意:未对齐是针对“注销”文本的。 注意:图片尺寸为214 X 57 注意:两种系统的分辨率和缩放比例均为100%。 MasterStyle.css 问题答案: 只是改变 至 无论如何(对我而言,我曾经遇到过这个问题)对我有用,一种方式是ie显示出恶意,另一种方式则没有: