【发布时间】:2015-09-03 11:57:41
【问题描述】:
一旦系统被锁定,调用 Invoke() 方法(来自 System.Windows.Automation.InvokePattern)就会失败。在将我们的项目迁移到 .NET 4.5.2 后可以看到这种行为。而在 .NET 4.0 中,即使系统被锁定,调用也能正常工作。
使用的dll是UIAutomationClient.dll,v4.0.0.0。
我得到的例外是:
System.InvalidOperationException 未被用户代码处理 Message=由于对象的当前状态,操作无效。
我知道使用 UIA 进行 GUI 测试通常需要解锁系统。由于此调用在系统锁定在 .NET 4.0 时有效,因此我希望在迁移后具有相同的行为。
【问题讨论】:
-
你确定它与.NET版本有关吗?在相关代码中没有明确抛出
InvalidOperationException,因此它很可能直接来自 COM 自动化 API。根据文档,The element does not support the InvokePattern control pattern or is hidden or blocked.,所以你正在做的事情绝对不受支持,而且从来没有。
标签: c# .net ui-automation uia