0

我正在研究 UI 测试自动化,并注意到通常 AutomationElement.FromHandle 非常快,但有时需要 30 秒才能返回 AutomationElement。从我有限的日志记录来看,返回 AutomationElement 需要不到 100 毫秒或整整 30 秒。有没有其他人见过这种类型的问题?

我承认我没有对这个问题的可重复性做太多调查,所以我不知道被测应用程序中的控制类是否存在潜在的性能问题。

4

1 回答 1

2

不知道这是否有帮助,但是:当您使用 FromHandle 时,在幕后,UIAutomation 正在使用 SendMessageTimeout 或类似方法向目标窗口发送 WM_GETOBJECT 消息。如果目标 UI 被冻结或忙于做其他事情,SendMessageTimeout 将阻塞,直到发生超时;这可能是间歇性阻塞的原因之一。您可以通过使用 SendMessageTimeout 将 WM_NULL 发送到相同的 HWND 以“ping”它来检查这是否是原因,如果这也阻塞,那么您知道问题是目标 UI 忙/挂起。

于 2012-03-05T11:45:49.570 回答