为什么在通过 MTM 执行编码 UI 测试时 Mouse.DoubleClick 无法正常运行?

Why isn't the Mouse.DoubleClick functioning properly when the Coded UI test is executed via MTM?

我想做的是双击 WPF 数据网格中的一行。为此,我使用了以下代码:

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.

有人可以指出正确的方向来解决这个问题吗?

为了防止其他人遇到此问题,我将代码更改为以下内容以使其正常工作。

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)作为参数传递。至于之前的方法为什么不行,恐怕我也解释不清了。