如果你是通过Accessibility来做Windows下的界面自动化测试,即用UI Automation(UIA)这套框架来做的,那估计你应该用过UISpy这个程序(如果你还不知道UISpy这个程序可以点击此处了解http://technet.microsoft.com/zh-cn/library/ms727247)
如果你想在自己的程序中查找其它程序的界面上的按钮等控件,可以使用AutomationElement.FindFirst或TreeWalker类来实现,不知你是否遇到过在UISpy中可以看到某个控件但用AutomationElement.FindFirst或TreeWalker却怎么也无法找到的情况。以下是研究了很久才找到的解决方案:
需要用异步委托,来封装

在使用UI Automation进行Windows界面自动化测试时,可能会遇到UISpy能显示控件,但AutomationElement.FindFirst无法找到的情况。解决方法包括使用异步委托或在独立线程中执行FindFirst操作。此外,代码中类的父类不应包含ServicedComponent,否则结果可能不一致。还应注意某些机器上UISpy显示的节点可能不全,而FindFirst有时需要多次调用才能成功找到控件。
最低0.47元/天 解锁文章
978

被折叠的 条评论
为什么被折叠?



