如何获取控件的AutomationId属性呢?
大家好,问题描述如下:
首先,控件定义如下
<Button x:Name="lan" Width="180" AutomationProperties.AutomationId="buttonId" AutomationProperties.Name="buttonName"/>
现在我编程获取到了Button对象,现在想获取AutomationProperties.AutomationId这个属性的值,即想得到“buttonId”这个值,如何获取到呢?
非常感谢!!!
[解决办法]
你估计是理解错了 AutomationProperties.AutomationId了。
首先,你的需求十分这奇怪。你是要做UI自动化测试吗?
你说你已经获得Button对象了, 是怎么获取的呢?如果你是做自动化测试,并且用的是UIA,那么这个Button应该以一个AutomationElement对象存在。而获取这个对象的过程最好就是通过你在开发时指定的AutomationId这个属性来(当然className,Name也可以,不过唯一的AID最好)获取的。这个AID本应该作为你在自动化测试时查找这个控件的一个条件,而且这个条件是开发时指定好的。而不是做为你查找到这个控件后想要读取的一个属性。当然你也可以获取了:
AutomationElement myBtn = AutomationElement.RootElement.FindFirst(TreeScope.Children,new PropertyCondition(AutomationElement.IdProperty, "buttonId"));//获得button控件string myBtnId=myBtn.AutomationId.ToString();//获得其AID属性的值//代码我没有调试,根据记忆写的,仅供参考。不过这样做有意义吗?