gpt4 book ai didi

selenium - 作为 Jenkins Slave 在虚拟机上设置 Selenium 测试的显示分辨率

转载 作者:行者123 更新时间:2023-12-02 20:16:25 29 4
gpt4 key购买 nike

我在 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());

这将返回:

Window height: 784
Window width: 1040

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

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

到目前为止,我们已经尝试了很多方法,例如:

  • 使用 RDP 连接到从属虚拟机并断开连接以保持 session 以所需的显示分辨率保持打开状态
  • 使用 powershell 设置显示分辨率
  • 在虚拟机配置中设置默认显示分辨率
  • 使用 Selenium 设置窗口尺寸
  • 还有更多...

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

最佳答案

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

Jenkins slave agent

之前我们选择了此选项,这就是从站作为服务运行的原因。停止并删除该服务后,我们再次运行 JNLP 文件并确保不选择该选项。

建议的解决方案包括断开远程桌面 session 的连接以及使 session 以高分辨率打开,当从属服务器作为服务运行时,这些解决方案不起作用。然而,当以默认方式运行从站时,它们确实可以工作。

确保远程桌面 session 在一段时间后没有结束: Session timeout properties

希望这对某人有帮助!

关于selenium - 作为 Jenkins Slave 在虚拟机上设置 Selenium 测试的显示分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42785359/

29 4 0
文章推荐: angularjs - 如何使用 Angular 1.2.0 - rc2 在
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com