Selenium работает на контейнере Alpine 3.6 - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь запустить Selenium на alpine 3.6 контейнере (FROM alpine:3.6).

Что я пытаюсь в оболочке контейнера:

apk update
apk add python3
pip3 install -U selenium
apk add chromium
apk add chromium-driver

И запустить следующее python (с использованием python3):

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
driver = webdriver.Chrome(chrome_options=options, executable_path=r'usr/bin/chromedriver') # Thrown an exception

И получено следующее исключение:

selenium.common.exceptions.WebDriverException: Сообщение: неизвестная ошибка: Chrome ошибка для запуска: сбой (Информация о драйвере: chromedriver = 2.27 (6ee44a7247c639c0703f291d320bdf05c1531b57), платформа = Linux 5.0.0-23-generi c x86_64)

selenium=3.141.0
chromium=57.0.2987.133
chromeDriver=2.27

Как я могу это решить?

Ответы [ 2 ]

1 голос
/ 17 января 2020

это то, что я сделал, чтобы заставить селен работать с alpine3.9 и firefox, надеюсь, это полезно

мне потребовалось много времени, чтобы найти идеальные версии

geckodriver должна быть версия 0.21.0

Dockerfile

FROM python:alpine3.9
RUN apk update
RUN apk add firefox-esr
RUN apk add xvfb
RUN pip install -r requirements.txt

needs.txt

selenium==3.11
pyvirtualdisplay==0.2.1

python код

from selenium.webdriver.firefox.options import Options
from pyvirtualdisplay import Display

display = Display(visible=0, size=(800, 600))
display.start()
driver = webdriver.Firefox()
0 голосов
/ 19 января 2020

Решено с помощью следующих шагов (Работа с alpine3.6):

Обновление репозиториев:

echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" > /etc/apk/repositories
echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories

Обновление Apk:

apk update

Установка Chromium & chromedriver:

apk add chromium
apk add chromium-chromedriver

Установка python3, селен:

apk add python3
pip3 install -U selenium

И у меня работает следующий код python:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(options=chrome_options)
driver.get('http://example.com')
...