- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用新的 native Microsoft UI 自动化接口(interface) 3.0(在 VC++ 2010、Win7 中)编写自动化测试器应用程序。被测应用程序 (AUT) 是一个 WPF 应用程序。
几乎一切都工作正常...我可以安装事件处理程序、浏览树、使用各种条件搜索元素并使用其模式控制找到的元素。
但是昨天我发现了一个让我绝望的行为:通过单击其主菜单按钮之一切换其 GUI 主面板后,我的 AUT 的 UIA 树根本没有更新。
单击主菜单按钮后,我可以在 AUT 的 GUI 中看到新的小部件,但 UIA 树仍然包含单击主菜单之前存在的控件菜单按钮。 (过时的)UIA 树仍然可以使用搜索功能或使用 walker 完全读取,但当然不能写入,因为小部件不再存在。
这看起来确实有一个过时的缓存...但是我根本不使用任何缓存 UIA 函数。没有任何。绝不。无处可去。
我无法以编程方式更新 UIA 树...既不能通过调用任何 UIA 函数,也不能通过重新启动测试器应用程序,也不能通过来回切换 AUT 的 GUI。这种情况并非每次都会发生。有时,单击主按钮后,树似乎是最新的,并且一切正常。然而大多数运行都会失败。只有一种(神秘的)方法可以可靠地更新 UIA 树:使用inspect.exe。当使用 Inspect.exe 工具简要查看 AUT 的 UIA 子树时,问题突然消失了,我的测试应用程序可以立即访问实际的、更新的树!当然,重新启动AUT后问题又出现了。
inspect.exe 做什么来更新 UIA 树(另一个应用程序!!!)?如何在不使用任何缓存的情况下访问消失的元素?我错过了什么?
我真的需要帮助。
<小时/>好的,还有一些发现:
UISpy.exe 能够像 Inspect.exe 一样神秘地刷新 UIA 树(这特别奇怪,因为 Inspect.exe 使用与我相同的 native 接口(interface),但 UISpy.exe 使用 .NET 接口(interface)AFAIK)。这意味着这是一种系统范围内且持久的 UIA 问题,而不是纯粹的 native UIA 问题。
如果我在切换 View 之前不访问树,则不会发生该问题。 IE。如果我的测试器应用程序在通过单击主菜单按钮切换 View 之前未访问 AUT View ,则它会毫无问题地看到新的小部件。这强烈表明 native UIA API 存在一些缓存问题 - 即使我不知道这是如何发生的,因为我根本不缓存。有人知道是否发生了一些内部缓存吗?
我认为这可能是一个 API 错误。然而,考虑到我目前使用 Microsoft Connect 的经历,我对这个令人惊叹的东西有点迷失了:-(
有人有什么想法吗?
<小时/>我还测试了 Snoop 工具。使用 Snoop 并不能像 Inspect 和 UISpy 那样暂时解决问题。关于Inspect.exe,还有另一个细节...足以折叠并展开AUT的子树来暂时治愈问题。
最佳答案
好的,更新一下。 UIA 看起来简直就是漏洞百出。我发现读取元素的内容数组和该数组的长度会更新隐藏的缓存。我还遇到过一种情况,其中选项卡的子树未更新,但可以通过切换到另一个选项卡并返回来更新(在这种情况下按模式读取内容没有帮助)。这两种情况都是可重现的,但我找不到任何方法来预测或预防它们。此外,许多第三方 WPF 组件似乎都有问题。我们最终放弃使用该 API。
关于wpf - 过时的 UI 自动化树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10782100/
情况我想使用 ui-date 在我的应用程序中设置/编辑日期。我使用最新稳定版本的 Angular、Angular-UI、JQuery-UI 等。 问题一旦使用日期选择器选择了日期,我的模型中的日期将
编辑: jQuery UI 可选择小部件内置了一个回调,stop,我需要知道如何以编程方式触发此事件。 (措辞不佳)我已将事件监听器附加到 jQuery UI Selectable Widget 。如
我正在尝试建立一个下一个JS与尾风用户界面提供的反应组件的网络应用程序。顺风用户界面是在幕后使用无头用户界面。。默认情况下,Next JS将构建服务器端组件,除非您在页面顶部添加“使用客户端”。不幸的
我正在尝试建立一个下一个JS与尾风用户界面提供的反应组件的网络应用程序。顺风用户界面是在幕后使用无头用户界面。。默认情况下,Next JS将构建服务器端组件,除非您在页面顶部添加“使用客户端”。不幸的
我正在尝试应用这个 SlickGrid 示例: http://mleibman.github.com/SlickGrid/examples/example4-model.html 到我自己的网络项目。
我想整理我的 Schemas为我的实体类生成,DTO 类位于 Springdoc ui . 我可以对 tags 进行排序和 operations通过以下配置 yml文件,但我的模式不是按排序顺序排列的
有谁知道阻止 ui-sref 重新加载状态的方法吗? 我无法通过“$stateChangeStart”事件执行此操作,因为 ui-sref 仅更改参数而不更改状态名称。 我的左边是书单,左边是书的详细
我正在 jquery ui 对话框中使用 jquery ui 自动完成小部件。当我输入搜索文本时,文本框缩进(ui-autocomplet-loading)但不显示任何建议。 var availabl
我正在尝试将 Kendo UI MVVM 框架与 Kendo UI 拖放机制结合使用;但我很难找到如何将数据从 draggable 对象中删除。 我的代码是这样的...... var viewMode
Kendo UI Web 和 Kendo UI Core 之间有什么区别 https://www.nuget.org/packages/KendoUIWeb http://www.nuget.org/
我正在尝试将 Kendo UI MVVM 框架与 Kendo UI 拖放机制结合使用;但是我很难找到如何从 draggable 对象中删除数据。 我的代码是这样的…… var viewModel =
使用 Angular JS - UI 路由器,我需要从我的父 View project.details 到我的 subview project.details.tasks 进行通信。我的 subvie
KendoUI 版本 2013.3.1119使用 Kendo MVVM 我有一个我构建的颜色选择器,它使用平面颜色选择器和使用调色板的颜色选择器。它们都可以正常运行,但平面颜色选择器的布局已关闭, s
我在非 UI 线程上,我需要创建并显示一个 SaveDialog。但是当我尝试显示它时:.ShowDialog() 我得到: "An unhandled exception of type 'Syst
我正在试验 jquery-ui 并查看和克隆一些示例。在一个示例(自动完成的组合框)中,我看到一个带有 ui-widget 类的 anchor (a) 元素,它与包含的 css 文件中的 .ui-wi
我需要返回一个 UI 列表,我用这个方法: getList(): Observable { return this.httpClient.get("/api/listui").pipe
我有 ui-grids在 angular-ui-tabs ,它们位于 ng-if 中以避免呈现问题。如果有更多数据并且网格进入滚动模式,则单击选项卡时数据会完全消失。我相信这是一个 ui-grids-
这似乎是一个通用的问题,与其他几个 React 开源框架相比,我真的很喜欢 Material ui 的可扩展性。 问题 “@material-ui/core”和“@material-ui/lab”中的
我有一个根页面(index.html),带有侧边栏(“菜单”)和主要内容 div(“主”),因此有两个 ui-view div - 一个称为“菜单”,一个称为“主”。 当主要内容区域有网站列表 (/s
有人在http://jsfiddle.net/hKYWr/上整理了一个很好的 fiddle 。关于使用 angular-ui 和 jqueryui sortable 来获得良好的可排序效果。 如何在两
我是一名优秀的程序员,十分优秀!