c# - AutomationElement 还活着?

标签 c# .net ui-automation microsoft-ui-automation automationelement

我正在使用 Microsoft UI Automation,但遇到了一些问题,其中之一是我想知道 AutomationElement 是否仍然存在。更准确地说,我想检查窗口是否已关闭。我认为这是此类问题最常见的情况,我尝试了不同的场景,最终得到了一个解决方案,我尝试访问元素的不同属性并查看它是否抛出 ElementNotAvailableException。我还偶然发现了一个名为 IsOffscreen 的属性,它在这种情况下似乎非常有用。但是,由于我在网上找不到太多相关信息,所以我想知道是否有更好的解决方案。最近几天我对这个框架不太满意,因为它对我来说似乎很不稳定(尤其是在寻找 AutomationElement 时)。也许您可以帮助我在实现过程中获得更多专业知识。

非常感谢

马塞尔

最佳答案

在获取 AutomationElement 之前,您可能会捕获 ElementNotAvailableException

try 
{
  var info = automationElement.Current;
  var name = info.Name;
}
catch (ElementNotAvailableException) {}

关于c# - AutomationElement 还活着?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30185789/

相关文章:

c# - Enterprise Library 5.0如何安装?

c# - List<>.IndexOf 是按引用还是按值进行比较?

.net - 是否可以以 `Local System` 用户身份运行测试?

java - 在 UiAutomator Android 中提供事件之间的延迟

c# - 重构 LINQ to Entities 查询

.net - 您如何配置您的网站/Web应用程序?

c# - 为什么属性中的异步/等待方法永远不会返回

jquery-ui - 如何使用Selenium测试JQuery UI Sortable小部件?

c# - AutomationElement.FindAll() 性能问题

c# - 如何在序列化 OData 响应时忽略 Null 值