我想编写一个编码的 UI 测试,例如“某些条件不可见时的某些 WPF 控制”。如何断言“不可见”?

重现 问题:

  • 创建新的 WPF 应用程序
  • 只在主窗口中添加一个大的命名按钮
  • 转到 CUIT 编辑器并识别按钮
  • 不关闭 CUIT 编辑器关闭 WPF 应用程序
  • 将 Visibility="Hidden"添加到按钮
  • 重启应用
  • 在 CUIT 编辑器中选择按钮并按下“刷新”按钮
  • 注意:隐藏按钮的属性和可见按钮的属性完全一样!

  • 没有办法断言按钮是隐藏的!

    另外:
  • 我很高兴听到您正在使用的解决方法。毕竟我需要的是写测试,而不是弄清楚CUITs
  • 我知道我可以比较截图
  • 有趣的是,如果您尝试使用 CUIT 会抛出的隐藏按钮执行操作。这意味着 CUIT 知道按钮何时隐藏。
  • 有趣的是,如果 Visibility="Collapsed"而不是“Hidden” CUIT 将通过报告 Width = Height = -1 来识别它。但这对折叠按钮没有帮助:(
  • 最佳答案

    我发现解决 IsVisible 限制的最佳方法是使用 UITestControl 对象的 TryGetClickablePoint(out System.Drawing.Point) 方法。此方法将返回一个 bool 值。因此,例如,如果您有一个 WpfButton:

    WpfButton mine = new WpfButton(parent);
    mine.SearchProperties["id"] = "id";
    
    Point toString;
    bool result = mine.TryGetClickablePoint(out toString);
    Assert.IsTrue(result, "My Assertion here.");
    

    这经常奏效。但是,要处理折叠或展开,对象的某些属性是否会根据其状态发生变化?例如,如果类是 class="myobject expanded" ,您可以轻松地将 mine.GetProperty("Class").ToString().Contains("expanded"); 断言为 bool 值。

    关于c# - 如何使用 MS 编码的 UI 测试 (CUIT) 检查 WPF 控件是否隐藏/折叠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25581380/

    10-11 11:58