我的表单中包含受测试的应用程序中的控件。这些控件在自己的线程中加载数据。
我想添加一个块,直到表单完全加载。
这是怎么做到的?
答案 0 :(得分:0)
我认为最简洁的方法是听AsyncContentLoadedEvent。
另一种假定您知道需要加载哪些组件的方法是直接在UI自动化树中搜索AutomationElement(FindAll,FindFirst,TreeWalker)。 如果所有AElements都可用,则意味着它已加载。您可以考虑使用childCount或各种AutomationElementProperties来验证它。当然,还可以使用几种模式(例如ValuePattern)来验证AElements的状态。
与AsyncContentLoadedEvent交替使用,您可以查看您的应用程序是否使用某种UI元素来显示加载过程的当前状态(HelpTextProperty,Icon,Label等)。 在这种情况下,我会简单地查询这个特定的AElement,因为它的当前值/名称/ ..(或者颜色(UI自动化不直接支持,需要一些解决方法))。并等到它具有所需的状态