繁体   English   中英

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

[英]Simulating mouse movement in WPF in a test

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

我知道这是一个很老的问题,但是希望它可以对以后遇到的任何人有所帮助。

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

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

或者,类似于@ 3aw5TZetdf对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

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

它是用于自动化UI测试的框架。

我正在使用SendInput函数来合成击键和鼠标事件,我发现它很棒! 检查此MSDN链接以获取详细信息。

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

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替换为所需的控件即可。

希望这可以帮助!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM