簡體   English   中英

在docker容器中運行selenium chrome瀏覽器

[英]running selenium chrome browser in docker container

我正在嘗試將selenium chrome驅動程序與docker一起使用。 不幸的是我無法正常工作。 當我做docker-compose來啟動容器時,它崩潰了

"container_name exited with code 1" error. 

使用docker logs -t -f我能夠得到以下錯誤。

selenium.common.exceptions.WebDriverException: 
Message: unknown error: Chrome failed to start: exited abnormally

我知道關於此問題還有其他堆棧溢出問題,但是所有解決方案都涉及添加chrome選項。 我已經嘗試添加各種Chrome驅動程序選項,但沒有任何運氣。 請參見下面的代碼。

options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=socks5://localhost:9050')
options.add_argument('disable-infobars')
options.add_argument('--disable-extensions')
options.add_argument('--no-sandbox')
options.add_argument('--disable-setuid-sandbox')
options.add_argument('--headless')
options.add_argument('--start-maximized') 
options.add_argument('window-size=1200x800')
options.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=options, desired_capabilities=caps)

我已經嘗試過上述代碼的各種組合,但是沒有運氣。 我也嘗試注釋掉'proxy = server'選項並運行容器,但出現相同的錯誤。 當我運行普通的python代碼時,它可以正常工作而沒有任何錯誤。

以下是我的Dockerfile的相關部分。

# Extra suff chrome driver needs
RUN apt-get install -y libglib2.0-0=2.50.3-2 \
libnss3=2:3.26.2-1.1+deb9u1 \
libgconf-2-4=3.2.6-4+b1 \
libfontconfig1=2.11.0-6.7+b1

# need this for chrome driver, not just ui 
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.19
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

您正在使用的chromedriver和chrome瀏覽器版本之間不兼容。

這是有問題的兩行:

RUN apt-get install -y google-chrome-stable

以上意味着您將下載最新的Chrome瀏覽器。

ENV CHROMEDRIVER_VERSION 2.19

但是,在這里,您專門使用的是ChromeDriver v2.19,這是一個非常老的版本。

您需要使用兼容版本,通常可以在發行說明中找到: http : //chromedriver.chromium.org/downloads

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM