如何在后台/ headless中运行sikuli Java代码

时间:2019-05-14 10:58:16

标签: java jenkins sikuli

我们正在使Flash Web应用程序自动化。我们正在使用带有硒的sikuli进行自动化,因为应用程序仅对一个功能使用Flash,而其他功能具有可通过xpath检测到的元素。现在的问题是,当我们在RDP中运行代码或jenkins硒代码将运行而没有任何问题时,当sikuli代码出现时,将不会提取元素图像,并且代码会失败并出现findFailed异常。请帮助我们在rdp和jenkins中运行sikuli代码。

1 个答案:

答案 0 :(得分:1)

  

请帮助我们在rdp和jenkins中运行sikuli代码。

Sikuli命令只能在用户模式和未锁定的桌面上工作。例如,截屏并移动鼠标命令需要一个未锁定的桌面,否则Sikuli无法控制鼠标光标或键盘。真正的人类用户也无法使用锁定的桌面。这适用于Windows,macOS和Linux。

解决方案:

1。在运行Sikuli测试时与远程桌面断开连接

使用远程桌面连接到远程计算机时,关闭远程桌面会锁定计算机,并显示登录屏幕。在锁定模式下,计算机没有GUI(活动窗口),因此任何当前正在运行或调度的sikuli命令都将失败。

为避免RealUser命令出现问题,请使用tscon实用程序与远程桌面断开连接。 tscon绕过登录屏幕,将控件返回到远程计算机上的原始本地会话。远程计算机上的所有程序都将继续正常运行,包括GUI测试。

要与远程桌面断开连接,请以管理员身份在远程计算机上(在“远程桌面”窗口中)运行以下命令:

%windir%\System32\tscon.exe RDP-Tcp#NNN /dest:console

其中RDP-Tcp#NNN是当前远程桌面会话的ID,例如RDP-Tcp#0。您可以在Windows任务管理器的“用户”选项卡上的“会话”列中看到它。

您将看到“您的远程桌面会话已结束”消息,并且远程桌面客户端将关闭。但是远程计算机上的所有程序和测试将继续正常运行。

2。另一种选择是使用Auto-Login ,并确保您的自动化在计算机重新启动后启动。可以执行宏自动启动。 G。与Task Scheduler相同,如本页前面所述。在这种情况下,您可以在断开RDP会话连接之前重新启动计算机,并且Kantu宏将在重新启动后恢复其工作。这就是我们在自己的测试机器上使用的。

The text above是从UI.Vision UI testingFlash Web app testing用户手册中复制的。该工具非常similar to Sikuli,因此您可以将建议的解决方案直接应用于Sikuli。

3。虚拟机

运行虚拟机(例如VBox)中的所有内容,并使该VM处于解锁状态。