在测试中模拟WPF中的鼠标移动

时间:2012-06-05 20:57:33

标签: c# wpf testing mousemove

我有一个WPF和C#项目,我想从用户的角度以编程方式测试我的几个悬停事件。我可以继续前进,只是手动触发用户悬停时发生的事件,但在我这样做之前,我想知道是否可以模拟鼠标移动并将其放在屏幕上的某个位置,然后从代码开始然后开始在可视树中冒泡的MouseMove(或任何适当的)事件。

5 个答案:

答案 0 :(得分:1)

我知道这是一个相当古老的问题,但希望它可以帮助将来遇到它的任何人。

将其置于任何控件的可点击位置(主要是中间位置):

window.Mouse.Location = item.ClickablePoint; //using specific item

或者,与@3aw5TZetdf does with Cursor.Position类似,您可以将其设置为相对于当前位置的特定位置或指定新位置:

var point = window.Mouse.Location;
window.Mouse.Location = new Point(point.X - 200, p.Y - 200); // New location using current one. Replace 200 with your desire value
window.Mouse.Location = new Point(200, 200) // new location

答案 1 :(得分:0)

查看codeplex http://white.codeplex.com上的White项目。

这是一个自动化UI测试的框架。

答案 2 :(得分:0)

我正在使用SendInput函数来合成击键和鼠标事件,我觉得它很棒!有关详细信息,请查看此MSDN link

答案 3 :(得分:0)

我不确定是否有办法模拟鼠标移动,但您可以通过编程方式移动鼠标:

Cursor.Position = new Point(x, y); // x and y are integers that form a point

或者如果你想让它转到控件的中间:

Cursor.Position = new Point(this.Location.X + button1.Location.X + button1.Width / 2,this.Location.Y + button1.Location.Y + button1.Height);

只需将button1替换为您想要的控件。

希望这有帮助!

答案 4 :(得分:0)

一些商业产品提供这种UI单元测试集成。其中一个产品来自Telerik http://www.telerik.com/automated-testing-tools/