我正在进行UI测试自动化,并注意到AutomationElement.FromHandle通常非常快,但有时返回AutomationElement需要30秒。从我有限的日志记录中获取AutomationElement需要不到100毫秒或整整30秒。还有其他人看过这类问题吗?
我承认我没有对这个问题的重复能力做过太多调查,所以我不知道在被测试的应用程序中是否存在控件类的性能问题。
答案 0 :(得分:1)
不知道这是否有帮助,但是:当你在幕后使用FromHandle时,UIAutomation正在使用SendMessageTimeout或类似方法向目标窗口发送WM_GETOBJECT消息。如果目标UI被冻结或忙于执行其他操作,则SendMessageTimeout将阻塞,直到超时发生;这可能是间歇性阻滞的一个原因。您可以通过使用SendMessageTimeout将WM_NULL发送到同一个HWND来“ping”它来检查这是否是原因,如果这也阻塞,那么您就知道问题是目标UI忙/挂了。