问题标签 [microsoft-ui-automation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
295 浏览

visual-studio-2010 - 有没有人有一些链接/在线材料来解释编码的 UI 测试是如何工作的?

我们使用 UI 自动化来自动化我们的应用程序,并希望将脚本从 UI 自动化移动到编码的 UI。我需要了解它在幕后是如何工作的。请分享任何可以提供一些想法的链接/文档。谢谢。

0 投票
1 回答
89 浏览

unit-testing - 如何使用 Microsoft UIA 检索控件的屏蔽值

在我们的应用程序中,我们有诸如日期/SSN 之类的字段,并且这些字段包含默认的掩码值,如“MM/DD/YYYY”或“xxx-xx-xxxx”等。当我们关注这些控件时,这些值会被隐藏并显示空白控件。我们需要检查此控件中可用的默认值,并想知道是否有任何方法使用 UIA 来检索控件的掩码值。

提前谢谢了!

0 投票
2 回答
1571 浏览

c# - 从 AutomationPattern 对象列表中获取实际的 InvokePattern 对象

我有一个从该方法中AutomationPattern检索到的对象列表。AutomationElement.GetSupportedPatterns()现在我需要知道那里有什么样的模式,我的意思是单项InvokePatternExpandCollapsePattern. 更具体地说,假设我们有一个AutomationPattern对象,并且我们知道ProgrammaticName该对象的属性是“InvokePatternIdentifiers.Pattern”字符串,我能以某种方式获得类型的对象InvokePattern吗?

我已经使用属性和一个大的 switch 语句实现了我自己解决这个问题的方法AutomationPattern.ProgrammaticName,还有其他方法可以做到这一点吗?

这是我的实现:

0 投票
2 回答
2534 浏览

c# - Windows UI 自动化 API 在服务器上运行时找不到子元素

我在 NUnit 2.5.10 测试中使用Microsoft UI 自动化 API来为 WPF 应用程序执行自动化 UI 测试。

在某些情况下,在我的开发机器上运行测试能够找到某些 UI 元素,但是当在我们的构建代理机器上针对相同的二进制文件运行相同的脚本时,它无法找到这些元素。

我找不到代理机器行为不同的任何原因。我怀疑它与 UIAccess 标志或 UAC 有关,但没有遇到任何具体的问题。

任何人都可以就构建代理为什么会有不同的行为提供一些指导,或者如何修复代理以查看与我的其他机器相同的元素?

例如,我有一个组合框,里面有十几个选项。使用 Win7 SDK 中的“检查对象”工具,我可以看到每个选项都有一个子元素,其中包含实际显示的文本。所以在我的测试代码中,我做了这样的事情:

在我的开发机器上,我得到以下结果:

但是在服务器上,我得到了这个:

在这两种情况下,Inspect Objects 都会显示子对象。 检查选项屏幕截图

构建代理和我的本地计算机都在运行带有 .Net 4 的 Windows 7 SP1。在这两种情况下,我都运行 nunit-console.exe 来启动测试。我在机器之间复制整个环境,所以它不仅是相同版本的 nunit 和我的应用程序的二进制文件,而且是完全相同的文件、配置、库等。 nunit 控制台以管理员用户身份运行。

0 投票
2 回答
2074 浏览

c# - 如何查找 TextBox 是否为只读

我正在开发一个应用程序来自动化其他应用程序。我希望能够确定“其他”应用程序上的文本框元素是否是只读的。如果是单行文本框,MS UI 自动化框架提供了 ValuePattern,我可以从该模式中获取只读属性,但是当我们有多行文本框时,没有可用的 ValuePattern,我只能访问 TextPattern 和 ScrollPattern。如何使用 MS UI 自动化从多行文本框中获取只读属性?

PS 我试图在互联网上找到一些关于这个的东西,但似乎没有太多关于 MS UI 自动化的信息。

0 投票
1 回答
3427 浏览

c++ - GetClickablePoint 不适用于 UI 自动化

我正在为 Metro 应用程序开发 UI 自动化客户端(C++)。我能够在地铁 UI 上获取元素。我正在使用 Raw Tree Walker

  1. 获取自动化树

    /li>
  2. 然后我正在迭代并在 Metro 应用程序上获取元素

  3. 检索 UI 元素的属性

    我在列表项旁边有图像和文本项。单击该启动网页。

    列表项、图像和文本项没有调用功能。所以我正在尝试获取可点击点,以便我可以单击该点。我也在使用 Inspect.exe 来查看 UI 元素。

    inspect.exe 确实显示列表项、图像和文本项的可点击点。但是当我

    有问题地尝试使用 GetClickablePoint() 我得到 gotClickable = 0 并且 POINT 字段保持 0.hr = S=OK

    /li>

我想在调用 mouse_event 时使用可点击点

0 投票
1 回答
171 浏览

c# - 如何提高 TestApi 的 Keyboard.Type 方法的性能?

我正在使用TestApiKeyboard.Type项目中的方法在文本框中输入字符串。

它可以工作,但它输入文本相当慢。我想提高速度。理想情况下,它应该立即设置文本(考虑将文本粘贴到文本字段中)。

有没有一种简单的方法可以在 C# 中实现它(一次将文本字段的文本设置为某个字符串)?

0 投票
1 回答
859 浏览

ironpython - WinForms UI 自动化:在 VisualUIAVerify 中找不到可见的 Ribon

尝试了每个列出的选项,但在使用白色的窗格控件中找不到功能区。尽管 VisualUIAVerify 将其显示在树中。

我想自动单击选项卡项“工具”。但只能找到一个“窗格”

我什至可以单击选项卡工具提供的坐标(IronPython)。

进入窗格:

系找丝带

或找到所有孩子

似乎没有任何效果。

0 投票
1 回答
1036 浏览

modal-dialog - UIAutomation - 如何使用 windowopendevent 处理程序绕过模式对话框阻塞?

我正在尝试为我们的一个产品构建一个自动化测试框架。一些测试用例涉及在模态对话框中执行自动化。但是,模式对话框会阻止 UIAutomation 代码执行。换句话说,如果我有一个由 UIAutomation 打开的模态对话框,那么在我关闭模态对话框之前什么都不会发生。

为了在模态对话框显示时执行 UIAutomation 代码,我一直在尝试注册一个 windowopenedevent 处理程序,该处理程序在打开模态对话框时捕获它,因此我可以在 windowopenedevent 处理程序中执行其余测试。但是,处理程序根本没有捕获事件。我不知道出了什么问题,有什么建议吗?

这种情况的其他解决方法也是受欢迎的。

0 投票
1 回答
3168 浏览

c# - 如何使用 UI 自动化库单击“窗格”?

我们有一个应用程序,我需要在其中单击窗格。我尝试使用以下代码来单击按钮,但它给出了不支持的模式异常。

InvokePattern click_pattern = (InvokePattern)adjust_button.GetCurrentPattern(InvokePattern.Pattern); click_pattern.Invoke();

还有其他方法吗?