C# 如何识别没有AutomationId的winforms按钮控件?

C# 如何识别没有AutomationId的winforms按钮控件?,c#,winforms,ui-automation,C#,Winforms,Ui Automation,我的任务是了解如何使用appium dotnet驱动程序为桌面应用程序实现UI自动化。我已成功地使用windows calculator应用程序进行UI单元测试 话虽如此,我公司的winforms应用程序遇到了很多麻烦,因为有些元素要么没有AutomationId,要么每次点击程序时它都会改变 是否有一种简单的方法来定义控件类型(即按钮)的AutomationId?通过设置相关控件的Name属性来解决。AutomationId是根据名称或文本属性自动推断出来的。希望它对其他人有所帮助。您能按名称

我的任务是了解如何使用appium dotnet驱动程序为桌面应用程序实现UI自动化。我已成功地使用windows calculator应用程序进行UI单元测试

话虽如此,我公司的winforms应用程序遇到了很多麻烦,因为有些元素要么没有AutomationId,要么每次点击程序时它都会改变


是否有一种简单的方法来定义控件类型(即按钮)的AutomationId?

通过设置相关控件的Name属性来解决。AutomationId是根据
名称
文本
属性自动推断出来的。希望它对其他人有所帮助。

您能按名称识别控件吗?这也是一个选项。一些(我需要)有空字符串作为名称。另一个有趣的特性是。它提供了有用的属性。但它不包括控件的句柄。您需要将
[Control].AccessibilityObject
强制转换为:
IntPtr ctlHandle=([Control].AccessibilityObject作为Control.ControlAccessibleObject.Handle此处的示例代码:。您能解释一下这与我的问题有什么关系吗?在看了你的例子之后,还不是很清楚。谢谢如何识别没有AutomationId的winforms按钮控件?。用它的把手。或其他属性:
键盘快捷键
父项
边界
等。它还允许直接调用DefaultAction,而无需
调用模式