无法通过 Xvfb 运行 在 CentOS 上进行 Selenium 测试

Unable to run Selenium tests on CentOS through Xvfb

我正在 运行通过 Jenkins 管道在 CentOS 7 机器上进行 Selenium 测试,因此使用 Xvfb。将 screen 参数与任何有效值一起使用时,如下 -

wrap([$class: 'Xvfb', autoDisplayName: true, screen: '1440x800x8']) { 
   <code to run Selenium test here>
}

它导致以下错误-

[testng] org.openqa.selenium.WebDriverException: chrome not reachable

   [testng]   (Session info: chrome=80.0.3987.132)

   [testng]   (Driver info: chromedriver=80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}),platform=Linux 3.10.0-862.el7.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information)

   [testng] Command duration or timeout: 0 milliseconds

   [testng] Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:13:22.693Z'

 

如果我们 运行 它没有 screen 参数,它 运行 就会成功。

再观察一次 - 使用 screen 参数,它在 Ubuntu 18

上完美运行

请帮助我如何 运行 在 CentOS 7 上使用 screen 参数进行 Selenium 测试。

尝试使用 screen 参数的不同值后,我意识到这不是 Chrome 浏览器或驱动程序的问题,而是将值传递给 screen

当我将深度值从 8 更改为 16 时,Selenium 执行成功开始 - screen: '1440x800x16'

wrap([$class: 'Xvfb', autoDisplayName: true, screen: '1440x800x16']) { 
   <code to run Selenium test here>
}

但从技术上讲,我不明白为什么会出现此错误以及深度值如何帮助解决它。