问题描述
我正在测试一些使用 UI 自动化操作另一个 GUI exe 的 c# 控制台应用程序。我在两台安装了相同操作系统(win 2019 数据中心)和其他软件的不同机器上测试了我的程序。问题是:它对其中一个有效,但对另一个无效。
我正在尝试获取 UIAutomationElement“接口”的一些 LegacyIAccessible 属性
这是我的代码示例:
iuiAutomationLegacyIAccessiblePattern pattern = (iuiAutomationLegacyIAccessiblePattern)this.uiAutomation.GetAnyPattern(patternId,interface);
IAccessible accessible = pattern.GetIAccessible();
在一台机器上,“accessible”不为空,当我悬停在它上面时,Inspect.exe 会显示“接口”对象的这些属性:
LegacyIAccessible.ChildId: 0
LegacyIAccessible.DefaultAction: "Press"
LegacyIAccessible.Description: "Color [Red]"
LegacyIAccessible.Help: ""
LegacyIAccessible.KeyboardShortcut: ""
LegacyIAccessible.Name: "Debug"
LegacyIAccessible.Role: menu item (0xC)
LegacyIAccessible.State: focusable (0x100000)
在另一台机器上,“accessible”为空,Inspect.exe 显示:
LegacyIAccessible.ChildId: 0
LegacyIAccessible.DefaultAction: "Press"
LegacyIAccessible.Description: ""
LegacyIAccessible.Help: ""
LegacyIAccessible.KeyboardShortcut: ""
LegacyIAccessible.Name: "Debug"
LegacyIAccessible.Role: push button (0x2B)
LegacyIAccessible.State: collapsed,focusable (0x100400)
LegacyIAccessible.Value: ""
在两次检查中,都显示了“界面”对象 IsLegacyIAccessiblePatternAvailable: 真 但他们表现出不同的角色。
因此,我无法在其中一台计算机上获得“颜色”。
自动化行为不同的原因可能是什么?就像我说的,这两种环境几乎相同。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)