如何从UITestPropertyProvider中的自定义属性获取数据

时间:2014-03-03 16:15:13

标签: coded-ui-tests

根据MSDN上的代码示例(http://msdn.microsoft.com/en-us/library/hh552522.aspx),您需要从控件中获取的任何自定义属性数据都应使用AccessibleObject Description中的分号分隔字符串属性。这根本不适合我。这似乎只是一个快速而肮脏的技巧,让它工作。从自定义控件获取属性值的正确方法是什么?如果这实际上是你应该怎么做的话,那么你应该如何使用SetPropertyValue方法设置这些属性?上面链接中的示例只会在NotImplementedException中抛出SetPropertyValue

1 个答案:

答案 0 :(得分:1)

由于IAccessible接口只有有限数量的属性,最好的解决方案是将任何额外信息塞进Description属性(这就是他们在我工作的公司和我们的开发人员所做的事情)不要工作快速和肮脏:))。要修改此属性的返回值,您必须在控件上实现Iaccessible接口。或者,因为您只想修改Description属性,您只需要修改该属性并将其余属性留给代理(我不确定它是如何工作的,但在MSDN上有它的教程)。 / p>

SetPropertyValue中的UITestPropertyProvider方法适用于UItestControl。通过覆盖它,您可以修改CUIT在播放期间与控件交互的方式。例如,如果为Text属性覆盖SetPropertyValue,则可以更改CUIT将字符串键入控件的方式。