Удаленный автономный сервер Selenium - драйвер неизвестен - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть контейнер docker в Google Cloud Platform. Выполните с файлом Firefox, Gecko и Jar-файлом Selenium Standalone Server версии 4.0.0-alpha-1. С этим у меня есть этот образ:

FROM ubuntu:bionic
LABEL maintainer="Matheus Carvalho Gomes Moreira, matheus@hrestart.com.br"
EXPOSE 4444
ENV PORT 4444
ENV VERSION "V6.1"

# Systems update
RUN apt-get update && apt-get install -y \
    python3 python3-pip \
    fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 \
    libnspr4 libnss3 lsb-release xdg-utils libxss1 libdbus-glib-1-2 \
    curl unzip wget \
    xvfb

# install java and selenium-server-standalone

RUN apt-get install openjdk-8-jdk -y
RUN wget -O /home/selenium-standalone.jar http://selenium-release.storage.googleapis.com/4.0/selenium-server-standalone-4.0.0-alpha-1.jar

# setup Java Environment

RUN export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
RUN export PATH=$PATH:$JAVA_HOME/bin

# install geckodriver and firefox

RUN GECKODRIVER_VERSION=`curl https://github.com/mozilla/geckodriver/releases/latest | grep -Po 'v[0-9]+.[0-9]+.[0-9]+'` && \
    wget https://github.com/mozilla/geckodriver/releases/download/$GECKODRIVER_VERSION/geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz && \
    tar -zxf geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz -C /usr/local/bin && \
    chmod +x /usr/local/bin/geckodriver && \
    rm geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz

RUN FIREFOX_SETUP=firefox-setup.tar.bz2 && \
    apt-get purge firefox && \
    wget -O $FIREFOX_SETUP "https://download.mozilla.org/?product=firefox-latest&os=linux64" && \
    tar xjf $FIREFOX_SETUP -C /opt/ && \
    ln -s /opt/firefox/firefox /usr/bin/firefox && \
    rm $FIREFOX_SETUP

CMD tail -f /dev/null
CMD DISPLAY=:1 xvfb-run java -jar /home/selenium-standalone.jar

И мой клиент:

FirefoxOptions options = new FirefoxOptions();
driver = new RemoteWebDriver(new URL("${URL_TO_CONTAINER}"), options);

Но когда я пытаюсь создать экземпляр удаленного драйвера, обращающегося к конечной точке, он выдает эту ошибку:

Unable to create new service: GeckoDriverService
Build info: version: '4.0.0-alpha-1', revision: 'd1d3728cae', time: '2019-04-24T16:15:24'
System info: host: 'localhost', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0', java.version: '1.8.0_242'
Driver info: driver.version: unknown

Я искал его, и, вероятно, это потому, что он не может найти Firefox и Gecko установлен для инициализации службы. У кого-нибудь есть мысли?

1 Ответ

0 голосов
/ 07 апреля 2020

Я не работал с geckodrivers, но я нашел этот проект , который можно использовать в качестве теста, а затем выяснить, как настроить драйверы, и следующую статью о том, как настроить приложение с селеном в docker контейнере.

...