gpt4 book ai didi

c# - 如何使用 MS 编码的 UI 测试 (CUIT) 检查 WPF 控件是否隐藏/折叠

转载 作者:行者123 更新时间:2023-11-30 12:45:12 24 4
gpt4 key购买 nike

我想编写一个编码的 UI 测试,例如“某些情况下不应显示某些 WPF 控件”。如何断言“不可见”?

重现问题:

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

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

另外:

  1. 我很高兴听到您正在使用的解决方法。毕竟我需要的是编写测试,而不是计算 CUIT
  2. 我知道我可以比较屏幕截图
  3. 有趣的是,如果您尝试使用隐藏按钮进行操作,CUIT 将抛出。这意味着 CUIT 知道按钮何时被隐藏。
  4. 有趣的是,如果 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com