我需要测试将某些鼠标移动视为“手势”的软件。对于这样的任务,我需要模拟从A点到B点的鼠标移动,而不是直线,但是当真正的鼠标移动时 - 有曲线,有点锯齿状等等。是否有任何可用的解决方案(算法/代码本身,不是我可以使用的库/ exe)?
当然我可以自己编写一些简单的正弦数学,但这将是一个非常粗略的仿真人类的手领导鼠标。也许这样的任务已经解决了很多次,我可以借用现有的代码吗? :)
答案 0 :(得分:9)
查看Mouse.simba文件,该文件是SRL Framework的一部分,这是一个旨在与Runescape等在线游戏配合使用的宏程序。 Runescape具有广泛的宏检测功能,因此SRL Framework的所有部分都被开发为尽可能看起来像人一样 - 特别是鼠标功能。
代码在Pascal中,但应该很容易阅读。看看BenLand100的MMouse()
程序,它非常逼真地进行高级动作,如循环和超越目标,以及不断变化的加速度和方向(现在还有笔记本电脑触摸板类型的动作)。如果您要测试它,则需要下载SIMBA和enable the SRL-include。
答案 1 :(得分:5)
如何录制一些真实的手势并让它们回放?这将是你可以合成的任何东西都是真实的,并且它是可重复的(这对测试来说很好)。
答案 2 :(得分:2)
创建一个简单的测试应用程序,每两秒显示一个随机定位的点。自己跟踪点并记录您的自然鼠标移动。
答案 3 :(得分:2)
捕获此行为的一种方法可能是在屏幕上定义一个不可见的“网格”,您可以在其中跟踪鼠标在其旅程中经过的方格。
如果这部分工作和记录正确,就不需要用测试轰炸它,因为你知道每个网格方块都能完成它的工作。使用此功能也可以更轻松地解释手势。
答案 4 :(得分:1)
对于将来的任何人:我为Java开发了一个库,该库完全符合OP的要求。运动中的噪音/锯齿,正弦弧度,位置过冲等。此外,库在编写时就考虑了扩展和配置的可能性,因此,如果默认解决方案与情况不符,则任何人都可以对其进行微调。现在可以从Maven Central获取。