Visual studio 编码的UI-播放无法找到具有给定搜索属性的控件

Visual studio 编码的UI-播放无法找到具有给定搜索属性的控件,visual-studio,coded-ui-tests,Visual Studio,Coded Ui Tests,我正在尝试运行记录的测试用例,它给了我以下错误:( 我无法理解这一点 请帮忙 Test Name: CodedUITestMethod1 Test FullName: CanopusCodedUITestProject.CodedUITest1.CodedUITestMethod1 Test Source: d:\CanopusDev\Main\Source\Solutions\CanopusCodedUITestProject\CodedUITest1.cs : line 30 Te

我正在尝试运行记录的测试用例,它给了我以下错误:(

我无法理解这一点

请帮忙

Test Name:  CodedUITestMethod1
Test FullName:  CanopusCodedUITestProject.CodedUITest1.CodedUITestMethod1
Test Source:    d:\CanopusDev\Main\Source\Solutions\CanopusCodedUITestProject\CodedUITest1.cs : line 30
Test Outcome:   Failed
Test Duration:  0:00:23.5295373

Result Message: 
Test method CanopusCodedUITestProject.CodedUITest1.CodedUITestMethod1 threw exception: 
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: The playback failed to find the control with the given search properties. Additional Details: 
TechnologyName:  'UIA'
FrameworkId:  'Wpf'
ControlType:  'Window'
Name:  'C5K Setup'
ClassName:  'HwndWrapper'
 ---> System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.
Result StackTrace:  
at Microsoft.VisualStudio.TestTools.UITest.Playback.Engine.IRPFPlayback.FindAllScreenElements(IScreenElement pScreenElementStart, String bstrQueryId, Object& pvarResKeys, Int32 cResKeys, Int32 nMaxDepth, Object[]& foundDescendants)
   at Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.FindTopLevelWindowHelper(String queryId)
   at Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.FindFromPartialQueryId(String queryId, Boolean resetSkipStep)
   at Microsoft.VisualStudio.TestTools.UITesting.UITestControl..ctor(String queryId)
 --- End of inner exception stack trace ---
    at Microsoft.VisualStudio.TestTools.UITesting.Playback.MapControlNotFoundException(COMException ex, IPlaybackContext context)
   at Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowComException(COMException innerException, IPlaybackContext context)
   at Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowException(SystemException exception, IPlaybackContext context)
   at Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowException(SystemException exception, String queryId)
   at Microsoft.VisualStudio.TestTools.UITesting.UITestControl..ctor(String queryId)
   at Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.SearchTopLevelWindow(ISearchArgument topLevelSearchArg, String topLevelElementQueryId)
   at Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.GetTitleUpdatedTopLevelWindow(ISearchArgument topLevelSearchArg, String queryId, IList`1 windowTitles)
   at Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.GetTopLevelElement(Boolean useCache, Boolean useCacheOnly, ISearchArgument searchArg, IList`1 windowTitles, Int32& timeLeft)
   at Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.GetElement(Boolean useCache, ISearchArgument searchArg)
   at Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.Search(ISearchArgument searchArg)
   at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.FindInternal()
   at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.<Find>b__3a()
   at Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod[T](Func`1 function, UITestControl control, Boolean firePlaybackErrorEvent, Boolean logAsAction)
   at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.Find()
   at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.GetPropertyPrivate(String propertyName)
   at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.<>c__DisplayClass3e.<GetProperty>b__3d()
   at Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod[T](Func`1 function, UITestControl control, Boolean firePlaybackErrorEvent, Boolean logAsAction)
   at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.GetProperty(String propertyName)
   at Microsoft.VisualStudio.TestTools.UITesting.ALUtility.GetTechElementFromUITestControl(UITestControl uiTestControl)
   at Microsoft.VisualStudio.TestTools.UITesting.ActionExecutorManager.GetActionExecutor(UITestControl uiControl)
   at Microsoft.VisualStudio.TestTools.UITesting.Mouse.ClickImplementation(UITestControl control, MouseButtons button, ModifierKeys modifierKeys, Point relativeCoordinate)
   at Microsoft.VisualStudio.TestTools.UITesting.Mouse.<>c__DisplayClass6.<Click>b__5()
   at Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod[T](Func`1 function, UITestControl control, Boolean firePlaybackErrorEvent, Boolean logAsAction)
   at Microsoft.VisualStudio.TestTools.UITesting.Mouse.Click(UITestControl control, MouseButtons button, ModifierKeys modifierKeys, Point relativeCoordinate)
   at Microsoft.VisualStudio.TestTools.UITesting.Mouse.Click(UITestControl control, Point relativeCoordinate)
   at CanopusCodedUITestProject.UIMap.CreateConfiguration() in d:\CanopusDev\Main\Source\Solutions\CanopusCodedUITestProject\UIMap.Designer.cs:line 280
   at CanopusCodedUITestProject.CodedUITest1.CodedUITestMethod1() in d:\CanopusDev\Main\Source\Solutions\CanopusCodedUITestProject\CodedUITest1.cs:line 32
测试名称:CodedUITestMethod1
测试全名:CanopusCodedUITestProject.CodedUITest1.CodedUITestMethod1
测试源:d:\CanopusDev\Main\Source\Solutions\CanopusCodedUITestProject\CodedUITest1.cs:第30行
测试结果:失败
测试持续时间:0:00:23.5295373
结果消息:
测试方法CanopusCodedUITestProject.CodedUITest1.CodedUITestMethod1引发异常:
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException:播放未能找到具有给定搜索属性的控件。其他详细信息:
技术名称:“UIA”
框架:“Wpf”
控件类型:“窗口”
名称:“C5K设置”
类名:“HwndWrapper”
--->System.Runtime.InteropServices.COMException:调用COM组件时返回错误HRESULT E_FAIL。
结果跟踪:
在Microsoft.VisualStudio.TestTools.UITest.Playback.Engine.IRPFPlayback.FindAllScreeneElements(ISScreenElement PSCreeeneElementStart、字符串bstrQueryId、对象和PVarreskys、Int32 cResKeys、Int32 nMaxDepth、对象[]和FoundSubstands)
在Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.FindTopLevel WindowHelper(字符串查询ID)中
位于Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.FindFromPartialQueryId(字符串queryId,布尔重置SkipStep)
位于Microsoft.VisualStudio.TestTools.UITesting.UITestControl..ctor(字符串查询ID)
---内部异常堆栈跟踪的结束---
位于Microsoft.VisualStudio.TestTools.UITesting.Playback.MapControlNotFoundException(COMException ex,IPlaybackContext上下文)
位于Microsoft.VisualStudio.TestTools.UITesting.Playback.MapandRowComeException(ComeException innerException,IPlaybackContext上下文)
位于Microsoft.VisualStudio.TestTools.UITesting.Playback.MapandRowException(系统异常异常,IPlaybackContext上下文)
位于Microsoft.VisualStudio.TestTools.UITesting.Playback.MapandRowException(系统异常异常,字符串查询ID)
位于Microsoft.VisualStudio.TestTools.UITesting.UITestControl..ctor(字符串查询ID)
在Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.SearchTopLevelWindow(ISearchArgument topLevelSearchArg,字符串topLevelElementQueryId)
在Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.GetTitleUpdatedTopLevel窗口(ISARCHARGUMENT topLevelSearchArg、字符串queryId、IList`1窗口标题)
位于Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.GetToLevel元素(布尔useCache、布尔useCacheOnly、ISearchArgument searchArg、IList`1 windowTitles、Int32和timeLeft)
位于Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.GetElement(布尔useCache、ISearchArgument searchArg)
在Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.Search(ISearchArgument searchArg)上
在Microsoft.VisualStudio.TestTools.UITesting.UITestControl.FindInternal()上
位于Microsoft.VisualStudio.TestTools.UITesting.UITestControl.b__3a()
在Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod[T](Func`1函数、UITestControl控件、布尔firePlaybackErrorEvent、布尔LogaAction)
在Microsoft.VisualStudio.TestTools.UITesting.UITestControl.Find()上
位于Microsoft.VisualStudio.TestTools.UITesting.UITestControl.GetPropertyPrivate(字符串propertyName)
在Microsoft.VisualStudio.TestTools.UITesting.UITestControl.c__DisplayClass3e.b__3d()上
在Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod[T](Func`1函数、UITestControl控件、布尔firePlaybackErrorEvent、布尔LogaAction)
位于Microsoft.VisualStudio.TestTools.UITesting.UITestControl.GetProperty(字符串propertyName)
位于Microsoft.VisualStudio.TestTools.UITesting.ALUtility.GetTechElementFromUITestControl(UITestControl UITestControl)
位于Microsoft.VisualStudio.TestTools.UITesting.ActionExecutorManager.GetActionExecutor(UITestControl)
在Microsoft.VisualStudio.TestTools.UITesting.Mouse.ClickImplementation中(UITestControl控件、鼠标按钮、ModifierKeys ModifierKeys、点相对坐标)
在Microsoft.VisualStudio.TestTools.UITesting.Mouse.c__DisplayClass6.b__5()上
在Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod[T](Func`1函数、UITestControl控件、布尔firePlaybackErrorEvent、布尔LogaAction)
在Microsoft.VisualStudio.TestTools.UITesting.Mouse.Click中(UITestControl控件、鼠标按钮、ModifierKeys ModifierKeys、点相对坐标)
在Microsoft.VisualStudio.TestTools.UITesting.Mouse.Click中单击(UITestControl控件,点相对坐标)
位于d:\CanopusDev\Main\Source\Solutions\CanopusCodedUITestProject\UIMap.Designer.cs中的CanopusCodedUITestProject.UIMap.CreateConfiguration():第280行
在d:\CanopusDev\Main\Source\Solutions\CanopusCodedUITestProject\CodedUITest1.CodedUITestMethod1()中的CanopusCodedUITestProject.CodedUITest1.cs:第32行

看起来您录制的UI组件的属性已更改,因此无法执行录制的操作。请验证该组件的搜索属性是否与录制时相同。

请查看堆栈跟踪中的以下行:

Microsoft.VisualStudio.TestTools.UITesting.Mouse.
Click(UITestControl control, Point relativeCoordinate)
这意味着CodedUI试图使用屏幕上的特定点单击控件。 由于某些原因,它找不到要单击的控件。可能此特定点上不存在按钮。
最有可能的是,您当前显示设备的屏幕分辨率与您用来记录这些测试的显示设备的屏幕分辨率不同。

我知道这是旧的,但一般来说,编码的UI测试并不是指屏幕上的坐标或点,而是指控件上的坐标。因此,使用一个按钮,比如说20像素宽和在屏幕中间的10像素高,坐标将B