参考:http://blog.csdn.net/popeer/article/details/6002541
UI自动化的框架,MS内部使用的不对外开放的框架。UI Automation 离不开像Mita, KAF ,Maui这样的对UIA技术框架又封装了一层的框架,准确的应该叫类库。
他们都有各自的特点:
1):Maui是最贴近UIA core的一层了,KAF,MITA 都是在maui的基础上建立起来的,这么说可能不准确,但他们都应用了maui的东西。Maui也是一个UI自动化测试框架,用来测试多种UI(WPF, WinForms, Win32, HTML, SDM, etc.)
2):MITA:要比maui好用,它的架构本身就是应用装饰模式,并且对windows application 支持的还算不错,包括WPF,所以使用MITA做UI自动化简单,宜用,比起UIA框架提供的元素好用多了。Mita可以与Win32, WinForms, MSAA, Avalon and Windows Vista等进行交互的UI implementation
3):KAF:它的内部都引用了Maui和MITA, 可能是考虑到Maui虽低层,但不支持WPF(2.0支持WPF);MITA虽支持wpf,但对外部不公开com. 我觉得KAF就是为浏览器的UI自动化而生。它对浏览器的支持超过前两者。
目前UI自动化的技术还存在很大的缺陷,有三点:
一是在UI element查找时,不支持正则表达式;
二是产品的UI技术总是不断变化,从win32,到wpf,再到Rebun, 这就造成了对同一个界面元素的唯一标识的不一致性。对自动化开发限制和挑战很大,针对于特定系统,特定版本的软件,要有兼容的解决方案才能克服。问题的根源是在产品设计时,开发者就没考虑UI automation自动化这事,windows OS也很难让所有在windows上运行的程序都有唯一而且统一的标识。
三是不支持二级查找。目前都是从UI tree的根节点开始查找,而不能直接从所有的二级或三级节点查找ui element.
9.要想提高开发速度,可以通过良好的成熟的架构设计,工具和管理。
10.使用好日志。记录信息时,需要记录好log lelver, when, where, How. 对troubleshooting很有帮助