【问题标题】:Handling SWT Dialog boxes while running tests in headless mode using SWTBOT使用 SWTBOT 在无头模式下运行测试时处理 SWT 对话框
【发布时间】:2009-12-15 13:57:13
【问题描述】:

我正在使用 SWT 构建的 Eclipse 应用程序上运行 Junit 测试用例。我正在使用 SWTBot 进行 GUI 测试。所以,这是我的问题:

editor.bot().button("Make Excel Template").click();

此代码帮助我在我的应用程序中生成模板。完成后,它会弹出一个带有“OK”作为消息的模态对话框。但是,我无法让 SWTBot 找到此按钮/小部件/对话框。我不断收到“WidgetNotFoundException”。

有人遇到过这个吗? SWTBot 网站上的官方内容说对话框应该在单独的非 UI 线程中运行。但是,提供的示例信息量不大。

感谢您的帮助!

【问题讨论】:

    标签: user-interface swt gui-testing swtbot


    【解决方案1】:

    首先,您应该在非 UI 线程中运行测试(如果尚未这样做)。 其次,您可以使用条件等待您的模态对话框在执行将弹出对话框的操作后出现:

    bot.waitUntil(Conditions.shellIsActive("This is the title of the modal dialog "));
    bot.button("OK").click();
    

    这解决了我们的时间问题。

    【讨论】:

      【解决方案2】:

      @carstenlez - 您的解决方案适用于 JFace 对话框。但是,我的应用程序正在使用 MessageBox - 这是一个本机对话框。 SWTBot 不支持本机对话框,所以我几乎没有选择。

      【讨论】:

      • 更准确地说 - 没有简单的选择。我没有深入研究代码,但我认为您可能会尝试替换该本机对话框和模拟实现的 Java 包装器。当然测试不会完成,但测试底层原生 GUI 无论如何都不是单元测试的一部分。
      猜你喜欢
      • 2011-08-08
      • 1970-01-01
      • 2012-01-21
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多