如何查询在 Coded-UI-Test 中测试的当前 UI-Window 的标题?

Posted

技术标签:

【中文标题】如何查询在 Coded-UI-Test 中测试的当前 UI-Window 的标题?【英文标题】:How to query the title of the current UI-Window that's tested in a Coded-UI-Test? 【发布时间】:2019-04-12 07:02:29 【问题描述】:

谁能告诉我如何获得在我的 UI 测试期间当前打开的窗口(UI 控件)的标题? (在 Visual Basic .NET 中使用 Visual Studio 进行编码的 UI 测试)

我现在搜索了一段时间,但不幸的是我找不到任何东西。

提前感谢您的帮助。

最好的问候 西蒙

【问题讨论】:

【参考方案1】:

您可以搜索该控件的automationId,并查看您找到的控件的属性。在您的编码 ui 测试中,您可以检查控件是否存在,只要您希望它可用。 看看这张截图,它是我用 Inspect.exe 捕获的资源管理器窗口中的数据。

如您所见,在这种情况下,在我的测试脚本中,我需要搜索 AutomationId“TitleBar”并使用属性 LegacyIAccessible.Value 或 Value.Value 中的值来获取窗口标题。

由于您使用的是编码 UI,因此获得该控件的最简单方法是使用 Visual Studio 中的内置编码 UI 测试构建器并将该控件添加到 UIMap。无需记录新的测试。您可以找到说明here。 SudheerUppada 的答案很有用。如果您不喜欢使用 UIMap,您可以将生成的代码的有用部分复制到您的测试脚本中,然后从 UIMap 中移除控件。

这是同一 ui 控件的屏幕截图,取自测试生成器: 在此示例中,窗口标题可通过 DisplayText 属性获得。

还有更通用的方法来查找当前窗口标题。这涉及对任何给定控件进行迭代,直到您拥有最上面的父控件。您将需要编写一个涉及使用UITestControl.GetParent() 的方法。它可能需要递归才能从父级从父级中获取父级......你明白了吗?看看this 的答案,它大致相同,但对于子控件。您可以使用 Telerik 的 this one 等在线工具将 C# 代码转换为 vb 代码。

您的编码 ui 测试可能无法访问该控件和/或该控件的标题。那是另一个问题。如果您的情况是这种情况,互联网上有许多资源可以描述需要做什么......或者您可以发布一个新问题:-)。

【讨论】:

以上是关于如何查询在 Coded-UI-Test 中测试的当前 UI-Window 的标题?的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的 DataGrid 中获取所选单元格的当前列(C# WPF 应用程序)

为Go语言Web项目做集成测试

如何从 SearchBar 中获取 Tableview 中所有项目的当前项目的索引

测试涨技术 | 如何为Go语言Web项目做集成测试?

如何从球面上的当前点(纬度/经度)找到线段上最近的点

灵魂拷问:如何规避生产环境的性能测试风险?