运行 多台计算机中的 Sikuli 脚本

Running a Sikuli script in multiple computers

我有一个用 java 编写的 Sikuli 脚本来单击 windows 开始按钮,然后单击出现的 "All Programs"。该脚本在我的计算机上运行良好,但当我将相同的脚本传输到另一台计算机时,它就不起作用了。

代码:

Screen screen = new Screen();
screen.type(Key.WIN); 
screen.click(IMAGE_DIR + "program.PNG");

我使用了 WaitPattern 等概念,但无法解决此问题。不知道这是不是sikuli的限制。

就像评论中已经提到的那样,屏幕分辨率的差异肯定会破坏您现有的脚本,因为 Sikuli 对它们非常敏感。在这种情况下,唯一的解决方案是重新捕获模式并在每台机器上使用不同的模式。

但是,如果您遇到此类问题但屏幕分辨率似乎相同,则还有一些其他事项需要检查。

Clear Type,这是 Microsoft 实现的子像素渲染,旨在改善字体的视觉外观。如果您在一台机器上打开此功能并在另一台机器上关闭,那可能是个问题。

屏幕字体的平滑边缘 设置可以在 "Performance Options" 中的 window 设置 window 中找到。它完全按照它说的去做,平滑 windows 字体以改善外观。与 ClearType 的情况一样,应该在您 运行 您的脚本所在的两台机器上关闭或打开此功能。一般建议始终关闭以避免此类问题。

对于那些仍在使用 Sikuli 并且在 运行 跨不同机器时遇到不一致的人,在显示问题的框上进行调试会很有帮助。

一些问题,例如未正确管理各种 AppData 临时文件的问题可能会出现在某些 PC 上,但不会出现在其他 PC 上。将 IDE 安装到不同的地方很痛苦,但有时这是真正了解问题所在的唯一方法 - 并能够修复它。