Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Проблема с запуском Webdriver на Debian сервере

jenkins
python
webdriver
Теги: #<Tag:0x00007fedb9379d68> #<Tag:0x00007fedb9379c28> #<Tag:0x00007fedb9379ae8>

(Ihor Dodukh) #1

Проблема заключается в следующем:
локально на Ubuntu 16.04 машине развернул Python проект pytest + selenium.

Запуск проводил через командную строку в virtualenv:

pytest -s tests/test_name.py

Локально все работало отлично и настало время добавить проект в Jenkins.

Jenkins, как оказалось позже, был развернут на сервере под Debian 8.9
Установил и настроил ShiningPanda Plugin, xfvb и все что требуется в таких случаях для запуска проетка в Jenkins.
Все импорты были добавлены в файл requirements.txt.

После первого же запуска билд падает и в логах выдает следующее:

self = <selenium.webdriver.chrome.service.Service object at 0x7f154e612748>

    def assert_process_still_running(self):
        return_code = self.process.poll()
        if return_code is not None:
            raise WebDriverException(
                'Service %s unexpectedly exited. Status code was: %s'
>               % (self.path, return_code)
            )

E           selenium.common.exceptions.WebDriverException: Message: Service /var/lib/jenkins/workspace/numus-automation/webdrivers/chromedriver unexpectedly exited. Status code was: 127

../../shiningpanda/jobs/67cfbb4e/virtualenvs/d41d8cd9/lib/python3.5/site-packages/selenium/webdriver/common/service.py:109: WebDriverException

Первая догадка - проблемы с натройкой xfvb. Проверил и действительно забыл в Jenkins прописать путь к выполняемому файлу в системе.
Прописал, рестартонул Jenkins - проблема не решилась.

Лазил на сервер и вручную выполнял запуск теста такой же командой как и на Ubuntu (тоже использовал virtualenv).
Ошибка по прежнему такая же как и в Jenkins.

Последняя догадка - проблема в Debian сервере. Возможно на Ubuntu таких траблов не возникло, но интересно решение именно на Debian.

Может кто сталкивался с подобными проблемами. Буду благодарен за советы, предложения решения проблемы.


(Ihor Dodukh) #2

Более полный вариант ексепшина

    def test_name():
>       driver = webdriver.Chrome(ChromeDriverManager().install())

tests/smoke_suite/test_name.py:31: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../shiningpanda/jobs/67cfbb4e/virtualenvs/d41d8cd9/lib/python3.5/site-packages/selenium/webdriver/chrome/webdriver.py:62: in __init__
    self.service.start()
../../shiningpanda/jobs/67cfbb4e/virtualenvs/d41d8cd9/lib/python3.5/site-packages/selenium/webdriver/common/service.py:96: in start
    self.assert_process_still_running()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <selenium.webdriver.chrome.service.Service object at 0x7fedc2629b38>

    def assert_process_still_running(self):
        return_code = self.process.poll()
        if return_code is not None:
            raise WebDriverException(
                'Service %s unexpectedly exited. Status code was: %s'
>               % (self.path, return_code)
            )
E           selenium.common.exceptions.WebDriverException: Message: Service /var/lib/jenkins/.wdm/chromedriver/2.33/chromedriver unexpectedly exited. Status code was: 127

../../shiningpanda/jobs/67cfbb4e/virtualenvs/d41d8cd9/lib/python3.5/site-packages/selenium/webdriver/common/service.py:109: WebDriverException

(Ihor Dodukh) #3

Спасибо всем за активную помощь) проблема решена. Больше не актуально


(ex3me0) #4

Решили через --no-sandbox небось?)


(Ihor Dodukh) #5

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