2017-07-27 51 views
0

嘗試nto dockerise selenium End2End使用硒泊塢窗圖像'硒/ standalone'我得到錯誤:錯誤:從硒服務器檢索新會話連接被拒絕!硒服務器是否啓動? 硒硒服務器啓動根據控制檯輸出..任何想法?連接拒絕錯誤與在Docker中運行的硒

FROM selenium/standalone-chrome 
USER root 
# installing node 
RUN apt-get update 
RUN apt-get install -y curl 
RUN curl -sL https://deb.nodesource.com/setup_7.x | bash 
RUN apt-get install -y nodejs 
RUN node -v 
RUN npm -v 
# Installing Yarn 
#RUN rm -r /usr/local/bin/yarn 
RUN npm install -g -y yarn 
ENV PATH $PATH:/usr/local/bin/yarn 
#copying files 
WORKDIR /app 
COPY . . 
# debug 
RUN ls -alh . 
#installing yarn 
RUN yarn install 
EXPOSE 4444 
RUN yarn 
CMD yarn test 
+0

請添加更多的細節設置和顯示日誌尋求幫助 –

+0

所以它安裝好,並啓動碼頭服務器,並顯示PID,但一旦測試開始,我得到我上面報告的錯誤 –

+0

請編輯主要問題,並使用格式更新代碼。在評論 –

回答

1

問題是你解決這個問題的方法。看到你從selenium/standalone-chrome繼承你的圖片,它應該運行一個Selenium瀏覽器。現在是您添加測試並指定CMD來運行測試的此映像。

當您構建並啓動此映像時,您不會獲得任何瀏覽器,因爲CMD已被您覆蓋以運行測試。當我們在docker中構建時,我們將依賴服務保留在不同的容器中。大多數情況下,每個容器最好運行1個服務/進程。在你的情況下,測試運行時,瀏覽器服務器進程丟失,所以這是拒絕連接的原因。

所以你需要在這裏運行兩個容器。一個用於selenium/standalone-chrome,另一個用於測試。

此外,您的圖像應該從節點繼承:而不是從硒鉻圖像。構建圖像時,您也不應該有node -vnpm -v命令。他們創造的最終圖像

FROM node:7 
USER root 
# installing node 
RUN apt-get update && apt-get install -y curl 
# Installing Yarn 
RUN npm install -g -y yarn 
ENV PATH $PATH:/usr/local/bin/yarn 
#copying files 
WORKDIR /app 
COPY . . 
# debug 
#installing yarn 
RUN yarn install 
RUN yarn 
CMD yarn test 

現在,你需要創建一個碼頭工人,撰寫文件來運行它有兩個測試和鉻

version: '3' 
services: 
    chrome: 
    image: selenium/standalone-chrome 
    tests: 
    build: . 
    depends_on: 
     - chrome 

安裝docker-compose和運行docker-compose up命令組成的額外層運行上述組合。此外,在您的測試中,請確保使用URL作爲http://chrome:4444/wd/hub並使用遠程webdriver而不是本地驅動程序。

+0

謝謝塔倫,但我也嘗試過一個節點圖像之前,並得到了相同的連接錯誤,我也認爲這個selenium_standalone_chrome有一個鉻瀏覽器,而不是硒瀏覽器..我已經使用docker-compose來構建圖像。 –

+0

因此,我給了'docker-compose'文件,它給了你什麼錯誤?在這裏發佈'docker-compose logs' –

+0

謝謝塔倫,我暫停了一段時間的這項工作,但我解決了這個問題:我使用了硒/節點鉻圖像,但是解決了它確保我的chromedriver + selenium服務器+守夜人被設置爲我的package.json中的最新版本 –

0

我用硒/節點鉻的形象,但什麼解決它確保我chromedriver +硒服務器+ nightwatch是在我的package.json設置到最新版本