C# 在自动化应用程序中没有关于DevExpress控件的信息

C# 在自动化应用程序中没有关于DevExpress控件的信息,c#,.net,devexpress,automated-tests,ui-automation,C#,.net,Devexpress,Automated Tests,Ui Automation,我之所以写这篇文章,是因为我在尝试获取有关DevExpress控件的任何有用信息时遇到了一些困难。我无法查看正在测试的应用程序的源代码,但UISpy和所有其他UI验证程序都不提供任何信息,包括名称、automationID等。唯一可用的是runtimeID、动态分配的automationID和控件类型等信息。是否有机会识别这些控件以获得其独特的属性?我知道这一定是某种方式,因为Visual Studio就是这样做的。您可以尝试使用。它将帮助您获得automationID。White是Micros

我之所以写这篇文章,是因为我在尝试获取有关DevExpress控件的任何有用信息时遇到了一些困难。我无法查看正在测试的应用程序的源代码,但UISpy和所有其他UI验证程序都不提供任何信息,包括名称、automationID等。唯一可用的是runtimeID、动态分配的automationID和控件类型等信息。是否有机会识别这些控件以获得其独特的属性?我知道这一定是某种方式,因为Visual Studio就是这样做的。

您可以尝试使用。它将帮助您获得automationID。

White是Microsoft UI自动化框架的包装器。因此,它使用
automationelement
s属性上的
Condition
s来查找适当的元素。UISpy基本上是UIA“所见”的视觉反映。没有其他“低级”属性

不幸的是,许多开发人员和控件供应商没有注意为
AutomationID
Name
属性设置唯一的指示性值,因此很难获得所需的元素


我能给你的最好的解决方案是创建一个直接与UIA而不是White一起工作的helper方法,这使你在搜索控件时更加灵活。例如,如果您有一个DevExpress GridView,您可以获取它的所有子元素,并查询每个子元素在屏幕上的相对位置。

它也不起作用,它与UISpy基本相同,只是外观更好。尽管如此,这些控件并没有提供automationID这样的信息,这就是为什么我想知道我可以从谁那里获得任何其他信息来帮助我识别它们。现在看起来是这样的:我想知道这是控件还是应用程序特定的。对于我创建的一个简单示例,我可以获得控件的automationId,如图所示,这可能是应用程序的实现错误,但是VisualStudioTest确实在没有提供任何信息的情况下获得了控件。问题是,我需要用白色测试它,如果有任何方法可以获得devexpress控件的任何ID,那就太好了。。。也许有比UIAutomation更低级别的可能性?对这个问题怎么说?