【发布时间】:2017-08-04 18:02:19
【问题描述】:
我在 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 从站通过 JNLP 代理连接。从站的服务以“本地系统”身份登录并启用“允许服务与桌面交互”选项运行。
到目前为止,我们已经尝试了很多方法,例如:
- 使用 RDP 连接到从属虚拟机并断开连接以保持会话以所需的显示分辨率打开
- 使用powershell设置显示分辨率
- 在 VM 配置中设置默认显示分辨率
- 使用 Selenium 设置窗口尺寸
- 还有更多...
所有这些都没有解决问题。非常欢迎提出建议!
【问题讨论】:
-
你大概可以设置显示大小:
driver.manage().window().setSize(new Dimension(1920, 1080)) -
@Kishan Patel,在这种情况下没有任何影响。我认为不可能以这种方式设置大于服务器显示大小的大小。
-
我现在正在使用 ubantu,所以无法实际测试它。但是,我尝试在开始测试之前按照 exe 设置分辨率。将脚本与测试脚本分开。它对我有用。你能试一试吗? tools.taubenkorb.at/change-screen-resolution
-
@GaurangShah 尝试了这个可执行文件和页面上提到的所有其他替代方案,但不幸的是它们都没有达到预期的结果。
标签: selenium jenkins vmware screen-resolution jenkins-slave