- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用 UIAutomationClient API 检索了一个 AutomationElement t
:
AutomationElement t = AutomationElement.RootElement.FindFirst(...);
t
的 WPF 对应物是 TabControl
内的 TabItem
。我想激活 t
代表的选项卡(即将 t
置于前台)。 我该怎么做?
我尝试了 t.SetFocus();
,但它根本没有任何(可见的)效果。
如果我有 TabItem
(我们称它为 tabItem
),我会调用
tabItem.IsSelected = true;
所以我想通过使用选择模式我可以实现相同的目的:
var p = t.GetCurrentPattern(SelectionItemPattern.Pattern) as SelectionItemPattern;
p.Select();
原来 p
的 IsSelected
属性在选择它之前已经是 true
- 所以调用 Select
仍然没有选择/激活选项卡。但是在 GUI 中,TabItem
显然没有被选中/激活。
最佳答案
我遇到了同样的问题,这是我的解决方案,希望对您有所帮助,即使已经很晚了。
示例用户界面:
示例代码:
AutomationElement aeDesktop = AutomationElement.RootElement;
AutomationElement aeForm = aeDesktop.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "davinceleecode"));
AutomationElement aeTabControl = aeForm.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.AutomationIdProperty, "tabControl1"));
aeTabControl.SetFocus();
AutomationElement aeTabPage = aeTabControl.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "tabPage2"));
SelectionItemPattern changeTab_aeTabPage = aeTabPage.GetCurrentPattern(SelectionItemPattern.Pattern) as SelectionItemPattern;
changeTab_aeTabPage.Select();
请检查 IsKeyboardFocusable
属性并确保将其设置为 true
。
关于c# - 激活作为 AutomationElement 检索的 TabControl 中的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44494525/
我试图获取我的 Skype 程序中的所有元素(包括所有聊天选项卡),但我只获取了可见的项目。 这是代码: var window = AutomationElement.RootElement.Find
我正在使用 Microsoft UI Automation,但遇到了一些问题,其中之一是我想知道 AutomationElement 是否仍然存在。更准确地说,我想检查窗口是否已关闭。我认为这是此类问
如何获取 AutomationElement 的真实 Type(例如 TextEdit 等)? GetType() 返回 System.Windows.Automation.AutomationEle
我有一个应用程序设置为在一天中的特定时间当用户注销时运行。它使用 C# 中的 Selenium 和 UI Automation 的组合,每天下载一个文件。运行登录时,一切正常。但是,当我通过任务调度程
我们一直在使用 MS UIA 框架,并注意到在 Windows 10/.NET 4.6 中查找对象集合时速度似乎显着下降。 在 Windows 10/.NET 4.6 机器上测试 Automation
我正在编写一个程序,将我的浏览历史记录在一个文本文件中。它从 chrome 窗口抓取 url 并将其写入文本文件。它获取 chrome 窗口句柄作为参数并将 url 写入 out 参数。代码如下所示:
我正在开发一个项目,该项目使用编辑器中的弹出窗口在 ListBox 中提供对象,供用户双击以将它们添加到他们的文档中。我正在尝试使用 microsoft 提供的自动化 API 为应用程序创建自动化测试
我正在使用以下代码尝试获取所有托盘图标,包括被 Windows 10 隐藏的图标。 public static List EnumNotificationIcons() {
我正在尝试提高某些 UI 自动化操作的速度。我偶然发现了(不是很好)记录的缓存可能性。 据我所知,整个操作(如果你有一个大的 GUI 树)非常慢,因为对于每个函数调用都必须有一个进程更改(有点像进入内
我以前从事 Web Bowers UI 自动化方面的工作。这些元素通过浏览器原生 API 使用 JavaScript 或 Selenium Driver 定位。(应用程序本身(即浏览器)以任何方式提供
我们为 WPF 应用程序 (.NET 4) 提供了一些自动化的 UI 测试;这些测试使用 UI Automation蜜蜂。 我们调用 AutomationElement.FindFirst找到一个目标
我有一个 AutomationElement A(MS UI 自动化),它代表一个组合框。我想使用 Windows API 调用在该组合框中选择第 n 个项目 IntPtr ComboBox_SetC
我希望能够通过 AutomationElement 将 DateTimePicker 元素设置为特定时间。它将时间存储为“hh:mm:ss tt”(即 10:45:56 PM)。 我得到的元素是这样的
我无法初始化 AutomationElement。 AutomationElement element = AutomationElement.FromHandle(process.MainWindo
我刚刚开始使用 AutomationElement,因为我们想对自定义控件进行集成测试,我认为我应该使用 AutomationElement。 我已经成功创建了一个带有自定义控件的窗口,并且可以成功获
我试图在我给出的特定屏幕坐标处获得控件。现在我想知道哪个控件会收到鼠标单击。 (该控件位于 UI 自动化场景中的另一个应用程序中。) 另外,让我说一下,Control、Windows Handle 和
我试图从微调器中获取值,以检查它是否通过 C# 中的 AutomationElement 正确输入。我目前正在做的是尝试通过 TryGetCurrentPattern 获取它,如下所示,但是它只返回
我们在 WPF 应用程序 的 WebBrowser 控件 中托管 MS-Word 文档。 WebBrowser 控件 在导航到选定的 MS-Word 文档期间显示以下对话: 我们尝试使用 Automa
我使用 UIAutomationClient API 检索了一个 AutomationElement t: AutomationElement t = AutomationElement.RootEl
我想知道,在 .NET 中,(托管的)Microsoft UI Automation 框架是否提供了一些实例化 AutomationElement 的方法键入给定窗口的 AutomationId 值,
我是一名优秀的程序员,十分优秀!