com – Microsoft UIAutomation中是否存在内部超时?
我正在使用UI自动化COM-to-.NET适配器来读取在
Windows 7上播放FLASH内容的目标Google Chrome浏览器的内容.它可以正常工作.
我成功地获得了内容和元素.一切都运行良好一段时间,但几个小时后,元素变得无法访问. (AutomationElement).FindAll()返回0个子节点. UIAutomation是否使用了任何内部未记录的超时? 根据这个IUIAutomation2 interface 所以我相信有一些暂停. 如果有超时,是否可以更改它? 有没有人知道发生了什么以及如何解决? 解决方法
谢谢你这个很好的问题.我有一个类似的问题,有一个非常不同的设置.我在Win7上,直接从C#使用UIAutomationCore.dll来测试我们正在开发的应用程序.在完成我的一系列动作之后事件订阅和所有其他事情,我间歇地观察到UIA接口停止工作(在我的情况下大约8-10分钟,但我大量使用UIA接口).
许多不同的事情包括调度COM接口,在不同的地方睡觉都失败了.有趣的启示是我在测试期间设法使用AccEvent.exe(类似于inspect.exe的SDK的一部分),并且看到事件也停止流向AccEvent.所以不是我的客户端界面停止了,而是停止响应的COM服务器(或任何UIAutomationCore所做的). 作为一种解决方案(似乎大部分时间都可以工作 – 或者改善情况很多),我认为我应该给测试中的应用程序一些呼吸点,因为使用UIA会给它带来额外的负担.这可能是您客户端中的智能睡眠点,但我没有在设定的时间内休眠,而是监视应用程序的处理器负载并等待它稳定下来. 当问题出现时,我收到的间歇性错误之一是“……无法调用任何订阅者……”,我的搜索结果是一个msdn页面说他们在CUIAutomation8界面上有所改进,但是因为这是特定于Windows8,我还没机会尝试. 我还应该补充一点,我还通过合并更多的ui缓存(FindAllBuildCache)减少了对UIA的调用次数,因为来回的频率越少,对uia来说就越好.感谢Guy在另一个问题上的答案:UI Automation events stop being received after a while monitoring an application and then restart after some time (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows上的python libclang绑定无法从sublime文本初始化翻
- 在win10环境下搭建 solr 开发环境
- .net – PowerShell中的echo和Write-Host有什么区别?
- windows-installer – 如果删除文件,为什么MSI安装程序会重
- diskmanagement – Windows 2012 R2中的磁盘管理,它在哪里?
- windows – 如何在批处理文件中等待exe完成?
- 无法在Windows上安装cairo haskell绑定
- 权限 – 是否可以使用提升的权限打开基于控制面板的应用程序
- win7下安装mysql proxy 0.85
- 如何在Windows 64上安装NumPy?