由于更高的屏幕分辨率,一些 Cucumber 脚本失败了 - JAVA

Couple of Cucumber scripts failed due to a higher screen resolution - JAVA

我在 jenkins 中设置了回归套件,它在 windows 服务器 2012 r2 上执行。最近我使用以下代码将屏幕分辨率更改为 1920,1080

driver.manage().window().setSize(new Dimension(1920,1080));

除两个(让我们说 script1 和 script2)以外的所有其他测试脚本都在服务器上以无头模式通过。但是这两个脚本在无头模式和浏览器模式下都通过了我的本地机器。

而且当我在服务器上以相同的屏幕分辨率在浏览器模式下执行这两个脚本时,它们再次通过。

当我将屏幕分辨率更改为 driver.manage().window().setSize(new Dimension(1366,768)); 它以无头模式在服务器上传递。

因为我对其余脚本使用相同的配置。我想不出这里发生了什么。当我构建 Jenkins 作业时,它会执行所有其他脚本,当涉及到 script1 时,执行会挂起。 Jenkins 构建也挂起并且没有走到尽头。正在为此寻找解决方案。

我正在使用 webdrivermanager,chrome 服务器的版本是 96

默认情况下,VM 屏幕尺寸非常小 (--window-size=1040,784),因此在自动化操作时,将屏幕尺寸减小到该值并进行自动化,否则,我们将面临这个问题。

要增加 VM 屏幕大小,您需要增加 R2 服务器的虚拟内存。最终会付出高昂的代价。

解法:

  1. 使用较小的屏幕尺寸实现自动化。
  2. 或运行它处于无头模式

我确实进行了故障排除,这是我的发现,

  1. 如果找不到元素,这是一个永不结束的循环
  2. 在循环内部,它搜索一个只出现在小屏幕分辨率下的元素(箭头按钮可以浏览一些选项卡。当屏幕分辨率更高时,所有选项卡都出现在页面中,没有箭头按钮可见)

这就是这些脚本在小屏幕分辨率下工作而在高分辨率下失败的原因

我相应地更改了循环,现在我可以在无头模式下以更高分辨率在服务器上执行所有脚本