Докер заставляет Selenium работать - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь запустить скрипт Python с Selenium внутри докера.Поскольку скрипт находится в док-контейнере, я получаю эту ошибку:

selenium.common.exceptions.WebDriverException: Сообщение: исполняемый файл chromedriver должен находиться в переменной PATH.

Код работает просто отлично, когда я запускаю его на своем компьютере и использую PATH для файла chromedriver, однако док-контейнер не может видеть PATH, поскольку он изолирован.Я хотел бы использовать готовый образ докера, однако мне нужны другие зависимости для запуска моего кода, такие как smtplib, imapclient и beautifulsoup, чтобы назвать несколько.

Есть ли команда, которая сообщит Selenium, что chromedriverнаходится в той же папке, что и скрипт, или каким-либо другим способом сделать его видимым для докера?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Контейнер Docker похож на виртуальную машину.Внутри изображения у вас есть сценарии.Но не хромедрайвер.Я бы сказал, не копировать хромедрайвер внутри изображения.Простое копирование chromedriver не будет работать.

Вместо этого используйте selenium/node-chrome image и присвойте имя контейнера в качестве хоста для вашего контейнера.

Посмотрите на этот пример.

http://www.testautomationguru.com/selenium-webdriver-how-to-run-multiple-test-suites-using-docker-compose/

0 голосов
/ 29 января 2019

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

import os

path_to_chrome_driver = os.path.join(os.getcwd(), 'chromedriver.exe')
browser = webdriver.Chrome(executable_path=path_to_chrome_driver )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...