C# 组合框操作结果异常

C# 组合框操作结果异常,c#,wpf,combobox,white-framework,C#,Wpf,Combobox,White Framework,我有这个应用程序,我需要写一些自动化。 有关该应用程序的数据,请参见图片。 我使用的是White/TestStack、C#和VS2015 我正在尝试捕获/获取combobox控件(参见图),并使用combobox为其设置一个值。单击()或combobox。选择()方法。 看起来我可以获取对象,但当我在代码组合框中写入时。单击()或组合框。选择(1)它会导致“system.invalidoperationexception”异常 注意-如果我写入组合框。在VS2015的“监视”窗口中单击(),则会

我有这个应用程序,我需要写一些自动化。 有关该应用程序的数据,请参见图片。 我使用的是White/TestStack、C#和VS2015

我正在尝试捕获/获取combobox控件(参见图),并使用
combobox为其设置一个值。单击()
combobox。选择()
方法。 看起来我可以获取对象,但当我在代码
组合框中写入时。单击()
组合框。选择(1)
它会导致“system.invalidoperationexception”异常

注意-如果我写入组合框。在VS2015的“监视”窗口中单击(),则会执行操作,但如果我写入组合框。选择(1)则会出现错误

下面是我获取combobox对象的代码

public static bool ComboBoxByAutomationID(ref TestStack.White.UIItems.WindowItems.Window win, ref 
TestStack.White.UIItems.ListBoxItems.ComboBox comboBox, String AutoId)
    {
        for (int i = 0; i < nofRetries; i++)
        {
            if (win.Exists<TestStack.White.UIItems.ListBoxItems.ComboBox>(SearchCriteria.ByAutomationId(AutoId)))
            {
                comboBox = win.Get<TestStack.White.UIItems.ListBoxItems.ComboBox>(SearchCriteria.ByAutomationId(AutoId));
                mGenLog.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name + ": Found " + AutoId + "[loop: " + i + "]");
                return true;
            }
            mGenLog.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name + ": NOT Found " + AutoId + "[loop: " + i + "]");
        }
        mMainLog.Error(System.Reflection.MethodBase.GetCurrentMethod().Name + ": NOT Found " + AutoId + "[loop: " + nofRetries + "]");
        return false;
    }
但我还是有个例外

应用程序数据:

错误:

System.InvalidOperationException未经处理HResult=-2146233079 Message=由于对象的当前状态,操作无效。Source=Interop.UIAutomationClient StackTrace:d:\dev\uiacomwraper\uiacomwraper\uiacomwraper\AutomationElement.cs中UIAutomationClient.iuiautomationeElement.SetFocus()处的uiautomationElement.SetFocus():在C:\projects\White-9yaco\src\TestStack.White\UIItems\UIItem.Focus()中的TestStack.White第455行‌​s:第301行InnerException:


如果出现错误,应始终发布完整的错误消息,并在调用堆栈中添加问题。异常详细信息:System.InvalidOperationException未经处理HResult=-2146233079 message=由于对象的当前状态,操作无效。Source=Interop.UIAutomationClient StackTrace:d:\dev\UIAComWrapper\UIAComWrapper\AutomationElement.cs:TestStack.White.UIItems.UIItems.UIItem.Focus()中的UIAutomationClient.IUIAutomationElement.SetFocus()处在C:\projects\white-9yaco\src\TestStack.white\UIItems\UIItem.cs:第301行InnerException:那么,问题中的哪一行代码是
AutomationElement.cs:line 455
,哪一行是
UIItem.C‌​s:第301行
?正常。也许我不清楚。如果函数(在上面的代码中)保持原样=>无错误。但是当我添加代码(!)组合框时,单击()[就在“return true”之前],我会得到一个异常,如上所述。但是,如果我调试并在“return true”之前停止,并在watch窗口中写入,那么操作就会执行。如果我对comboBox.Select(1)执行相同的操作,那么在watch和code上都会出现异常。这两种情况的例外情况是相同的。感谢您的评论,您的异常并没有真正反映出这一点。。。如果在
单击
时引发异常,并且您提供了完整的异常信息,那么我希望
单击
会出现在调用堆栈上。但您提供的调用堆栈以
Focus
结尾。。。也许有一个内部异常或一些其他附加信息还没有出现在问题中?如果你得到一个错误,您应该始终发布完整的错误消息和带有问题的调用堆栈。异常详细信息:System.InvalidOperationException未经处理HResult=-2146233079 message=由于对象的当前状态,操作无效。Source=Interop.UIAutomationClient StackTrace:d:\dev\UIAComWrapper\UIAComWrapper\AutomationElement.cs:TestStack.White.UIItems.UIItems.UIItem.Focus()中的UIAutomationClient.IUIAutomationElement.SetFocus()处在C:\projects\white-9yaco\src\TestStack.white\UIItems\UIItem.cs:第301行InnerException:那么,问题中的哪一行代码是
AutomationElement.cs:line 455
,哪一行是
UIItem.C‌​s:第301行
?正常。也许我不清楚。如果函数(在上面的代码中)保持原样=>无错误。但是当我添加代码(!)组合框时,单击()[就在“return true”之前],我会得到一个异常,如上所述。但是,如果我调试并在“return true”之前停止,并在watch窗口中写入,那么操作就会执行。如果我对comboBox.Select(1)执行相同的操作,那么在watch和code上都会出现异常。这两种情况的例外情况是相同的。感谢您的评论,您的异常并没有真正反映出这一点。。。如果在
单击
时引发异常,并且您提供了完整的异常信息,那么我希望
单击
会出现在调用堆栈上。但您提供的调用堆栈以
Focus
结尾。。。可能有一个内部异常或一些其他附加信息还没有在问题中?
comboBox.Click();  
comboBox.Select(1);