Я запускаю тесты Selenium на машине CentOS 7 через конвейер Jenkins, поэтому использую 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

Пожалуйста, помогите мне, как я могу запускать тесты Selenium с аргументом screen в CentOS 7.

0
Alpha 15 Июн 2020 в 13:40

1 ответ

Лучший ответ

Попробовав разные значения для параметров screen, я понял, что проблема не в браузере или драйвере Chrome, а в том, что значение передано в screen

Когда я изменил значение глубины с 8 на 16, выполнение Selenium началось успешно - screen: '1440x800x16'

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

Но технически я не понимал, почему возникает эта ошибка и как значение глубины помогло ее устранить.

0
Alpha 26 Июн 2020 в 06:31