我有一个用java编写的Sikuli脚本,用于单击Windows开始按钮,然后单击出现的“所有程序”。该脚本在我的计算机上运行得非常好,但是当我将相同的脚本传输到另一台计算机时,它就不起作用了。
代码:
Screen screen = new Screen();
screen.type(Key.WIN);
screen.click(IMAGE_DIR + "program.PNG");
我使用了诸如 Wait
、Pattern
等概念,但无法解决这个问题。不确定这是否是 sikuli 的限制。
最佳答案
就像评论中已经提到的那样,屏幕分辨率的差异肯定会毁掉您现有的脚本,因为 Sikuli 对它们非常敏感。在这种情况下,唯一的解决方案是重新捕获模式并在每台机器上使用不同的一组模式。
但是,如果您遇到此类问题,但屏幕分辨率似乎相同,则还需要检查一些内容。
Clear Type,这是 Microsoft 的子像素渲染实现,旨在改善字体的视觉外观。如果您在一台计算机上打开此功能并在另一台计算机上关闭此功能,则可能会出现问题。
屏幕字体的平滑边缘设置可以在“性能选项”的“视觉效果”设置窗口中找到。它的作用正如其所言,平滑 Windows 字体以改善外观。与 ClearType 的情况一样,应在运行脚本的两台计算机上关闭或打开此功能。一般建议始终关闭以避免此类问题。
关于java - 在多台计算机上运行 Sikuli 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36422606/