问题标签 [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 投票
1 回答
325 浏览

c++ - rootElement->FindFirst(...) 找不到 Inspect 看到的元素

我正在尝试查找 Windows 上的“服务”窗口(开始->运行->Services.msc)中包含的列表项。该列表项名为“Arc Service”,使用 Inspect 很容易找到,但我的代码无法找到它。这是一个相对简单的案例,我觉得我一定做错了什么。

有问题的代码是:

“找到 Arc 服务元素!” 永远不会进入分支。

以下是 Inspect 中描述该元素的详细信息:

MS 检查详细信息

任何帮助将不胜感激。谢谢!

0 投票
1 回答
833 浏览

wpf - 如何在 UIAutomation 中识别 WPF 绘图视觉效果?

我们的应用程序有一个画布,我们向其中添加绘图视觉效果(如线条、多边形等)

我们的目标是通过自动化将这些视觉效果添加到画布中,并验证它们是否被正确添加。我们使用基于 Microsoft 的 UIAutomation 的框架。

当使用像“检查”这样的工具来检查视觉结构时,我找不到画布。做了一些研究并发现您需要覆盖OnCreateAutomationPeerfrom 的方法UIElement,并返回适用AutomationPeer的对象才能能够在自动化中看到它。

进行了更改,现在我可以看到画布,但是我仍然看不到画布下添加的任何视觉效果。

谁能帮我理解问题是什么?

尝试过的事情/替代方案:

  1. 尝试使用 OnCreateAutomationPeer 技术,但 DrawingVisuals 不派生自UIElement,并且我无法将UIElements 添加到Canvas.VisualCollection.
  2. 图像识别是一种选择,但出于性能/维护方面的考虑,我们试图避免使用它。
0 投票
1 回答
373 浏览

c# - AutomationElement ScrollBar 在 ScrollVertical 上引发访问冲突

我正在尝试使用以下代码在第三方 .net 应用程序中滚动滚动条。当我在 Visual Studio 中运行代码时,它会引发访问冲突。当我在 Visual Studio 之外执行程序集时,它显示 Unsupported Pattern.... 任何想法都非常感谢 =]

0 投票
0 回答
303 浏览

c# - WPF ListView 对象有时被 UIAutomation 识别为 DataGrid 而不是 ListView

我们有一个ListView在我们的应用程序中使用的对象,它是一个新类SortableListView : ListView并使用该GridView模式。我们添加了一个自定义提供程序,它允许在自动化过程中对行进行去虚拟化(因此我们不需要执行“在屏幕上检查、否、滚动、重复”选择列表中的项目的方法)。它效果很好,当您意识到屏幕外的对象时,它会有效地出现在屏幕上。我们使用 ListView 因为网格是只读的,所以我们不需要 DataGrid 的编辑模板。

但是,有时(我们无法准确追踪导致它的原因)ControlType 被识别为 DataGrid 而不是 ListView。这破坏了我们的自动化,并且我们能找到的唯一方法是,每次我们必须处理网格时,我们都必须检查它是否将自身呈现为 DataGrid 或 ListView。更令人不安的是表的实际行具有 Class ListViewItem,Microsoft 未修改的确切对象形式,但被识别为 DataGrid 行。

有谁知道为什么 UIAutomation 会决定它是一个DataGrid而不是 ListView?它实际上只是直接从 ListView 继承的。

0 投票
1 回答
330 浏览

c# - 有没有办法持久化 UIAutomation 元素?

我正在使用 Windows 7(64 位)上的 MS UIAutomation。我想知道是否可以使 UIAutomation 元素持续存在,如果可以的话,可以从什么出发点去做。

我唯一想到的是元素的 RuntimeID,但问题是某些元素可能没有 id。

我想要实现的一个简单场景是,我通过使用 找到屏幕上控件的 UIAutomation 元素AutomationElement.FromPoint(),现在我想保留它,以便下次我可以通过将其“加载”回UIAutomation Element.

0 投票
1 回答
829 浏览

c# - UIAutomation c#文本框随着鼠标单击或失去焦点而消失

我在 Visual c # express 2010 中使用 UIAutomation 我正在尝试在 UI 应用程序中自动输入文本框文本突然消失在这里是我工作的文件的 UIspy 日志

这是我使用的代码,当然我使用自动化 id 100 来定位这个文件

因此,当我运行此代码时,在文本框中输入了“值”,但是如果我更改了 foucs,它就会消失任何想法,我试图自动输入该表单并保存它.. 谢谢

0 投票
1 回答
207 浏览

ui-automation - 是否有 Microsoft UI 自动化 (UIA) 的 WebDriver 实现?

我正在寻找Microsoft UI 自动化 (UIA)的 WebDriver 实现来自动化桌面应用程序和存储应用程序。

就像AppiumAppium for Mac所做的一样,除了 Web 应用程序和移动应用程序之外,我认为 WebDriver API 应该也适用于 Windows 桌面应用程序和商店应用程序(以前称为 Metro 应用程序)。

我将实现一个服务器,它公开 WebDriver API 并在内部通过 UI 自动化 API 与 UI 元素交互。你知道是否存在一些这样做的开源项目吗?

0 投票
2 回答
2679 浏览

ui-automation - CodedUI 测试 - 无法将纯文本密码发送到输入字段

在某些时候,当我将密码发送到表单上的输入字段时,看起来它被加密了。密码长度为 8,但 CodedUI 正在输入更多字符,在测试执行期间可见。任何想法,如何只传递字符串而不进行任何编码?

附言

代码示例:

0 投票
1 回答
3307 浏览

c# - MSAA 发现 UI 自动化没有的控件

我正在致力于自动化 Windows 应用程序。我正在使用 teststack 白色框架。我遇到了一个问题。这个程序有一个我看不到里面的“窗口”对象。白色显示其中没有控件。在 UI 自动化模式下运行时,Inspect.exe 内部也不显示任何控件。如果我将 Inspect 切换到 MSAA,它会看到里面的控件很好。无论如何,我是否可以使用 C# 中的 MSAA 来处理这些控件?

0 投票
0 回答
1099 浏览

winforms - 提供属性 Text 时,UI 自动化在选项卡控件内找不到 tabPage

我已经尽可能地简化了这个问题,下面的代码可以剪切并粘贴到“test.linq”文件中并加载到 LinqPad 中。就目前而言,在 LinqPad 中运行此代码将显示它正在工作 - 目的是tabPage1使用 UI 自动化框架找到带有 AutomationId 的窗格。

现在注释掉工作线并引入虚线。现在找不到标签页...唯一的区别是标签页是用Text属性声明的。

我发现了一系列博客,这些博客可能表明错误出在一个自动化提供程序上,TabControl但是已经反编译了TabControl源代码,我看不出是这种情况,但是基础Control实现了一个处理程序,WM_GETOBJECT我真的不是确定这会导致什么。

有任何想法吗?