2

我写了这样的代码:

int timeOut = 300000; //milliseconds
string _displayTextProp = "DisplayText";

WpfText screenResult = MainWindow.UITableStatusControlCustom.ScreenResultLabelValue;

screenResult.WaitForControlExist(timeOut);
screenResult.WaitForControlPropertyNotEqual(_displayTextProp, null, timeOut);
screenResult.WaitForControlPropertyNotEqual(_displayTextProp, "0", timeOut);// (1)

在这个(1)方法中,我得到了异常 UITestControlNotAvailableException

测试方法抛出异常:Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotAvailableException:控件不可用或无效。---> System.Runtime.InteropServices.COMException:来自 HRESULT 的异常:0x80042002 at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode) at MS .Internal.Automation.UiaCoreApi.CheckError(Int32 hr) 在 MS.Internal.Automation.UiaCoreApi.UiaGetPropertyValue(SafeNodeHandle hnode, Int32 propertyId, Object& value) 在 System.Windows.Automation.AutomationElement.GetCurrentPropertyValue(AutomationProperty property, Boolean ignoreDefaultValue) 在System.Windows.Automation.AutomationElement。DisplayClass4.<WaitForControlPropertyNotEqual>b _3(UITestControl ctrl) at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForCondition[T](T conditionContext, Predicate 1 conditionEvaluator, Int32 millisecondsTimeout) at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlCondition(Predicate1 conditionEvaluator, Int32 millisecondsTimeout) at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlPropertyNotEqual( String propertyName, Object propertyValue, Int32 毫秒Timeout)

是什么原因可以是这样的行为?

谢谢你的提前!

4

1 回答 1

2

根据此链接

当 UI 测试框架尝试访问不再可用或无法访问的 UI 元素时,将引发此异常。因此,您可能已经处置了一个项目,或者不再有权访问该元素并且现在正在尝试访问它。可能您未能初始化其中一个 AutomationElement?

于 2010-11-30T10:25:51.937 回答