C# 组合框上的编码UI失败

C# 组合框上的编码UI失败,c#,wpf,combobox,telerik,coded-ui-tests,C#,Wpf,Combobox,Telerik,Coded Ui Tests,我有一个包含许多嵌套元素的复杂Wpf应用程序。我想测试应用程序UI,我创建了一个编码的UI测试。在应用程序的某个地方有一个telerik RadComboBox,我想更改它的选定项。当测试试图更改组合框中的选定项时,它总是失败。它抛出以下异常: 试验方法CodedUITestProject2.CodedUITest1.CodedUITestMethod1 例外情况: Microsoft.VisualStudio.TestTools.UITest.Extension.FailedOperation

我有一个包含许多嵌套元素的复杂Wpf应用程序。我想测试应用程序UI,我创建了一个编码的UI测试。在应用程序的某个地方有一个telerik RadComboBox,我想更改它的选定项。当测试试图更改组合框中的选定项时,它总是失败。它抛出以下异常:

试验方法CodedUITestProject2.CodedUITest1.CodedUITestMethod1 例外情况: Microsoft.VisualStudio.TestTools.UITest.Extension.FailedOperationOnBlockedControlException 打开:另一个控件正在阻止该控件。请使被阻止的控件可见,然后重试该操作。 其他详细信息:TechnologyName:'UIA'FrameworkId:'WPF'控件类型:'ComboBox'

Xaml代码如下所示:

<telerik:RadComboBox Height="{StaticResource ResourceKey=defaultHeight}" Margin="{StaticResource ResourceKey=DefaultMargin}" Name="serverName" DropDownOpened="serverName_DropDownOpened"
              Grid.Column="1" IsEditable="True" TextBoxBase.TextChanged="serverName_TextChanged">
            <telerik:RadComboBox.Items>
                <ComboBoxItem>
                    <TextBlock FontStyle="Italic" Foreground="Gray" text="sqlconnection"/>
                </ComboBoxItem>
            </telerik:RadComboBox.Items>
</telerik:RadComboBox>

我不明白为什么会这样

我如何解决这个问题?

欢迎回答。

假设组合框没有隐藏,如消息所述,您是否添加了,似乎MS编码的UI引擎在与指定控件交互时遇到问题。

我将按照您建议的链接中的步骤进行操作。注意变化。我仍然得到同样的例外Kamran,你用什么来定义你的对象?如果可能的话,发布代码。Ryan,哪个对象?你能解释一下吗?特别是不能设置SelectedItem的组合框。它应该类似于:public RadComboBox myCombo(){RadComboBox target=new RadComboBox();target.SearchProperties[“name”]=“serverName”;return target;}然后,在您的测试方法中,您将执行以下操作:myCombo().SelectedItem=“value”;这是CUIT builder创建的代码:公共类UIRADComboxComboBox:WPFComboxComboxBox{public UIRADComboxComboxBox(UITestControl searchLimitContainer):base(searchLimitContainer){this.SearchProperties[WPFCombox0.PropertyNames.AutomationId]=“serverName”;this.WindowTitles.Add(“应用程序在调试模式下运行)”;}}}并且在测试方法中:WpfComboBox uIRadComboBoxComboBox=this.UI8130ApplicationWindow.uitabcntrotablist.UIConnectDatabaseTabPage.uiradcomboxcombobox;uiradcomboxcombobox.SelectedItem=“sqlconnection”;