我目前正在尝试使用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);
不执行此最后一行之后的任何代码。
提前感谢您的帮助。
答案 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正在挂起,而是你的应用程序正在等待下降完成后再继续。
//丹尼尔