将虚拟机上的Selenium测试的显示分辨率设置为Jenkins Slave

jur*_*nvo 7 vmware selenium screen-resolution jenkins jenkins-slave

我在Jenkins Slave上运行一些Selenium测试时遇到了麻烦.具体而言,用于运行测试的显示分辨率太小,导致某些测试失败.

要检查显示分辨率,我们使用以下命令将显示高度和宽度记录到控制台:

driver.manage().window().maximize();
System.out.println("Window height: " + driver.manage().window().getSize().getHeight());
System.out.println("Window width: " + driver.manage().window().getSize().getWidth());
Run Code Online (Sandbox Code Playgroud)

返回:

Window height: 784
Window width: 1040
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎是一个非常奇怪的解决方案.所需的分辨率为1920 x 1080.

用作从属服务器的是虚拟机(Windows Server 2012 R2).Jenkins Slave通过JNLP代理连接.从站使用"登录为本地系统"运行服务,并启用"允许服务与桌面交互"选项.

到目前为止,我们已经尝试了很多东西,比如:

  • 使用RDP连接到从VM并断开连接,使会话以所需的显示分辨率打开
  • 使用powershell设置显示分辨率
  • 在VM配置中设置默认显示分辨率
  • 使用Selenium设置窗口尺寸
  • 和更多...

所有这些都没有解决问题.建议非常欢迎!

jur*_*nvo 5

在意识到Jenkins不一定需要将奴隶作为Windows服务运行之后,最终设法解决了这些问题.要启动从属服务器,可以从Jenkins下载JNLP代理并将其复制到服务器.运行JNLP文件时,可以选择将从属代理安装为服务的选项.

詹金斯奴隶代理人

以前我们选择了这个选项,这就是奴隶作为服务运行的原因.停止并删除服务后,我们再次运行JNLP文件,并确保不选择该选项.

解决方案建议包括断开远程桌面会话并使用大分辨率打开会话在将从属服务器作为服务运行时不起作用.但是,当以默认方式运行从站时,它们可以正常工作.

确保在一段时间后远程桌面会话未结束: 会话超时属性

希望这有助于某人!