2016-08-05 5 views
0

내가 뭘 하려는지 WPF DataGrid에서 행을 두 번 클릭하는 것입니다. 내 컴퓨터에서 테스트 패스를이 프로그램을 실행할 때코딩 된 UI 테스트가 MTM을 통해 실행될 때 Mouse.DoubleClick이 제대로 작동하지 않는 이유는 무엇입니까?

WpfTable invoiceList = new WpfTable(base.MainWindow); 
invoiceList.SearchProperties.Add(WpfTable.PropertyNames.AutomationId, "datagridID"); 
invoiceList.WaitForControlReady(15000); 

Mouse.DoubleClick(invoiceList.GetRow(0)); 

하지만 MTM을 통해 동일한 테스트를 실행할 때 다음과 같은 오류 얻을 : 나는 다음과 같은 코드를 사용하고이를 달성하기 위해

Test method org.Application.Automation.TestCases.CommentsTests.VerifyExistingCommentsTest threw exception: Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException: Cannot perform 'DoubleClick' on the control. Additional Details: TechnologyName: 'UIA' ControlType: 'Row' FrameworkId: 'WPF' ---> System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.

을 누군가 내가 이것을 고칠 수있는 방향을 지적 할 수 있었습니까?

+0

죄송합니다.이 질문을하는 것은 어리석은 짓을하고 있지만, 확인하고 싶은 것은, 더블 클릭하는 버튼이나 컨트롤이 수동으로 더블 클릭 할 수 있습니까? – Siva

+0

검색을 올바르게하려는 요소를 가리키고 있지만 행이나 데이터 셀 – Siva

+0

@ 시바의 데이터 셀을 가리키는 지 확인하지 않으면 수동으로 두 번 클릭 할 수 있습니다. 내 컴퓨터에서 같은 (자동) 테스트를 실행하면 통과하지만 MTM을 통해 실행할 때 실패합니다. –

답변

0

다른 누구도이 문제에 직면 한 경우 작동하도록 코드를 다음과 같이 변경했습니다.

WpfControl row = invoiceList.GetRow(0); 
row.WaitForControlReady(); 

Mouse.DoubleClick(new System.Drawing.Point(row.BoundingRectangle.X + row.BoundingRectangle.Width, row.BoundingRectangle.Y + row.BoundingRectangle.Height/2)); 

그래서 대신 WpfRow 개체를 두 번 클릭

, 나는 Mouse.DoubleClick (새 System.Drawing.Point()) 옵션을 사용하여 매개 변수로 중심점 (즉 System.Drawing.Point)을 통과시켰다. 이전 접근 방식이 효과가없는 이유에 대해서는 설명 할 수 없습니다.