一旦系统被锁定,调用 Invoke() 方法(来自 System.Windows.Automation.InvokePattern)就会失败。在将我们的项目迁移到 .NET 4.5.2 后可以看到这种行为。而在 .NET 4.0 中,即使系统被锁定,该调用也可以正常工作。
使用的 dll 是 UIAutomationClient.dll,v4.0.0.0。
我得到的例外是:
System.InvalidOperationException 未被用户代码处理 Message=Operation 由于对象的当前状态而无效。
我知道使用 UIA 进行 GUI 测试通常需要解锁系统。由于此调用在系统锁定在 .NET 4.0 时有效,因此我希望在迁移后具有相同的行为。