0

我的应用程序框架:C#.Net

.

目标应用程序框架:Qt

.

我的自动化工具:

  • 测试堆栈/白色
  • System.Windows.Automation 命名空间的有用类

我有一个 Qt 应用程序,我通过以下代码获得了其中一个面板(拨号面板),我无法获得(找到)它的任何子元素!

......在此处输入图像描述

.


我的代码的主要部分:

var dialerWindow = mainWindow.Get<TestStack.White.UIItems.Panel>("DialerPageWindow");

TreeWalker walker = TreeWalker.RawViewWalker;

AutomationElement current = walker.GetFirstChild(dialerWindow.AutomationElement);

//Now current is NULL :(

.


我在 VS 中观看了dialerWindow变量(DialerPageWindow)。这是快照: 在此处输入图像描述

.


我通过这个标题阅读了这个问题的答案: Windows UI 自动化没有显示所有子元素?

  • 我需要一种向此按钮发送点击事件的方法。
  • 请在 C# 中建议任何工具、库、第三方库、Windows 消息或...来解决此问题
4

2 回答 2

1

从您的屏幕截图来看,拨号器窗口中的元素似乎没有暴露给 UIAutomation。您是否尝试过使用检查winspector或任何其他 spytool 来查看该元素是否可检测?

如果它们无法检测到,则有 2 个选项

  1. 您可以访问源并实现公开元素的提供程序(请参阅this)您可能正在寻找IRawElementProvider
  2. 你一定要点击坐标(对不起)

如果您有权访问代码,请参阅GitHub 存储库以了解如何实施。

于 2015-03-04T20:26:22.647 回答
0

作为一个 pyhtonist,我可以为 pytest 框架推荐pytest-qt插件,它可能对 QT 应用程序有用。

于 2014-11-01T09:06:50.747 回答