WPF,白色自动化,拖放悬挂

时间:2011-05-04 07:46:11

标签: c# wpf drag-and-drop ui-automation white

我目前正在尝试使用White UI-Automation framework自动化测试用例 在这样做的过程中我遇到了一些麻烦。我试图从一个按钮拖动到屏幕上的一个点,我根据其他两个点的位置计算。

单击按钮会发生什么,鼠标移动到正确的位置,然后应用程序挂起,直到手动移动或单击鼠标,然后发生放下并继续测试。如果鼠标未收到任何手动交互,则应用程序将继续挂起。

代码如下所示:

var criteria = SearchCriteria.ByText(xText);
var yLocation = window.Get(crite);
var yPoint = yLocation.ClickablePoint;
criteria = SearchCriteria.ByText(yText);
var xPoint = window.Get(crite).ClickablePoint;
var dropPoint = new Point(xPoint.X, yPoint.Y);
criteria = SearchCriteria.ByText(buttonName);
var button = (Button) window.Get(criteria);
Mouse.Instance.DragAndDrop(button, button.ClickablePoint,yLocation,dropPoint);

不执行此最后一行之后的任何代码。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

点击此处:http://white.codeplex.com/discussions/271672

此页面显示了解决方法:

//Point the mouse for drag

Mouse.Instance.Location = draggedItem.ClickablePoint;

Mouse.LeftDown();

//Move the mouse a little down
Mouse.Instance.Location = new Point(draggedItem.ClickablePoint.X, draggedItem.ClickablePoint.Y + 1);

//Move to the new window
targetWindow.Focus();

//Set the point to drop
Mouse.Instance.Location = targetWindow.ClickablePoint;

//Drop
Mouse.LeftUp();

答案 1 :(得分:0)

没有真正的问题要回答,但我可以尝试给你一些(有用的?)反馈。

我不了解White-UI-Automation框架,但我找不到使用您提供的链接的任何有用文档。我怀疑DragAndDrop在丢弃完成之前根本就没有返回。这类似于DoDragDrop在WPF中的工作方式。

如果是这种情况,我不会说DragAndDrop正在挂起,而是你的应用程序正在等待下降完成后再继续。

//丹尼尔