晚上睡不着,就随便写写东西吧.
UI Automation是一个新的用于自动化测试的技术,随着.NETFX3.5的发布而发布,亦不过才一年多的时间。所以,还有很多不完善的地方,其中包括一些已知的bug。不过,相信在.NETFX4.0已经对其进行了改进,增加了一些新的property以及partten等等。
按照微软官方的说法,UI Automation是一个跨平台的技术,也就是不仅windows可以使用,linux等也同样可以使用。但是,事实是否如此?恕本人孤陋寡闻。
UI Automation是在MSAA基础上建立的,MSAA就是Microsoft Active Accessibility。UIA在某些方面超过了msaa,而且对于wpf的控件都默认支持UI Automation.
UI Automation将所有的窗体、控件看做是AutomationElement。顺便说一下,对于UI(用户界面)来说,所有显示在桌面上的UI,其实际是一个UI Tree,根节点是desktop。我们可以使用UI Spy或者是SPY++来获得UI和Control的信息。所以,在UI Automation里,根节点表示为AutomationElemnet.RootElement.获得了根节点,就可以找到相应的element了,如button,checkbox, treeview, 并且可以invoke事件,比如单击,模拟键盘输入等等。