简单 - 如何使用编码的 UI 从 WPF 组合框中选择项目

Bos*_*eek 0 wpf wpf-controls coded-ui-tests

我曾为 Web 应用程序使用过编码 UI,但这是我第一次尝试将编码 UI 用于 WPF。我想从组合框中单击一个项目但是,我无法在 WPF 中实现相同的目标。我试图遍历组合框内的项目,但没有奏效。尝试使用搜索属性 - 没有结果。此外,试图找出 AutomationElement 的东西,但无法获得解决方案。如果我能了解实现要求所需遵循的方法,那就太好了。

我已经捕获了控件并想使用它们。没有录音和回放。

kid*_*ida 5

您可以使用 WpfComboBox 的 SelectedItem 属性,该属性采用您要选择的项目的名称(如我在 yonder answer 中的评论中所述)

var myComboBox = this.UIMap.UIMainWindowWindow.UIItemComboBox;
var items = myComboBox.Items;
myComboBox.SelectedItem = items[0].Name;
Run Code Online (Sandbox Code Playgroud)

或者,如果您已经知道要设置的项目的索引,则可以简单地设置 SelectedIndex

var myComboBox = this.UIMap.UIMainWindowWindow.UIItemComboBox;
var items = myComboBox.Items;
myComboBox.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)

或者您可以先单击组合框以将其展开,然后获取 item 元素的 UITestControl 并单击它(不幸的是,您必须手动单击组合框,因为它似乎无法使用 ExpandWhileSearching 配置)

var myComboBox = this.UIMap.UIMainWindowWindow.UIItemComboBox;
var items = myComboBox.Items;
Mouse.Click(myComboBox);
Mouse.Click(items[0]);
Run Code Online (Sandbox Code Playgroud)

或者

var myComboBox = this.UIMap.UIMainWindowWindow.UIItemComboBox;
var items = myComboBox.Items;
myComboBox.Expanded = true;
Mouse.Click(items[0]);
Run Code Online (Sandbox Code Playgroud)