Проблемы при реализации образа док-станции jenkins + chrome + неизвестная ошибка ruby: не удалось запустить Chrome: произошел сбой (Selenium :: WebDriver :: Error :: UnknownError) - PullRequest
1 голос
/ 31 мая 2019

Я пытаюсь настроить Дженкинс, используя официальный образ док-станции Дженкинс.

Dockerfile

FROM jenkins/jenkins:lts

USER root
RUN apt-get update && apt install -y ruby-full
RUN apt-get install -y curl
RUN apt -y autoremove
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs
RUN apt-get install -y build-essential
RUN apt install -y wget
RUN gem install --no-ri --no-rdoc --format-executable rake
RUN gem install selenium-webdriver
RUN gem install bundler
RUN npm install -g node-mongo-seeds

#Permissions granted to jenkins user to do a gem install
RUN chown -R jenkins:jenkins /var/lib/gems
RUN apt-get install -y patch ruby-dev zlib1g-dev liblzma-dev
RUN chown -R jenkins:jenkins /usr/local/bin

# We need wget to set up the PPA and xvfb to have a virtual screen and unzip to install the Chromedriver
RUN apt-get install -y wget xvfb unzip

# Set up the Chrome PPA
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list

# Update the package list and install chrome
RUN apt-get update -y
RUN apt-get install -y google-chrome-stable

# Set up Chromedriver Environment variables
ENV CHROMEDRIVER_VERSION 2.35
ENV CHROMEDRIVER_DIR /chromedriver
RUN mkdir $CHROMEDRIVER_DIR

# Download and install Chromedriver
RUN wget -q --continue -P $CHROMEDRIVER_DIR "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip"
RUN unzip $CHROMEDRIVER_DIR/chromedriver* -d $CHROMEDRIVER_DIR

# Put Chromedriver into the PATH
ENV PATH $CHROMEDRIVER_DIR:$PATH

USER jenkins

Во время выполнения задания браузер не будет открываться и попадать на локальный хост. Я также попытался нажать "google.com"

google-chrome --headless --no-sandbox 'https://www.google.com'

все еще безуспешно

    Fontconfig warning: "/etc/fonts/fonts.conf", line 100: unknown element "blank"
[0531/130727.949511:ERROR:browser_process_sub_thread.cc(217)] Waited 17 ms for network service

Я не могу понять, почему пользователь jenkins не может открыть браузер.

  • Google Chrome 74.0.3729.169
  • ChromeDriver 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881)
  • ruby ​​2.3.3p222 (2016-11-21) [x86_64-linux-gnu]
  • Дженкинс 2.164.3

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Таким образом, согласно комментарию @DebanjanB, это решило проблемы с драйверами, но в соответствии с новой проблемой сбоя Chrome я решил ее, просто добавив

options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
d = Selenium::WebDriver.for :chrome, options: options
1 голос
/ 31 мая 2019

Это сообщение об ошибке ...

unknown error: Chrome failed to start: crashed (Selenium::WebDriver::Error::UnknownError)

... подразумевает, что ChromeDriver не смог инициировать / создать новый WebBrowser т.е. Браузер Chrome сеанс.


Ваша главная проблема заключается в несовместимости между версиями используемых вами двоичных файлов:

  • Youиспользуется chromedriver = 2,35
  • Примечания к выпуску chromedriver = 2,35 ясно упоминает следующее:

Поддержка Chrome v62-64

  • Вы используете chrome = 74.0
  • Примечания к выпуску ChromeDriver v74.0 четко упоминает следующее:

Поддерживает Chrome v74

Так что естьявное несоответствие между ChromeDriver v2.35 и Chrome Browser v74.0


Решение

  • Обновление ChromeDriver до текущей ChromeDriver v74.0 уровень.
  • Keep Chrome версия на уровне Chrome v74 уровень.( согласно примечаниям к выпуску ChromeDriver v2.46 )
  • Очистить ваше Рабочее пространство проекта через IDE и Перестройте ваш проект только с необходимыми зависимостями.
  • Если ваша базовая версия Web Client устарела, удалите ее и установите последнюю версию GA и выпущенную версию WebКлиент .
  • Выполнить @Test.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...