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